14
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pythonでツイートの投稿

Last updated at Posted at 2017-01-19

#1. はじめに

普段からtwitterを使うため、プログラムを用いて投稿やタイムラインの取得を行いたいのでそれを行うための
備忘録としてここに残します。

ここでは以下の内容を記載します。
イ. twitterにアクセスするためのAPI keyの取得
ロ. 実際にtwitterへの投稿

#2. twitterにアクセスするためのAPI keyの取得

twitterはAPIを公開しているので、それを用いてアクセスします。
以下のサイトを参考にAPI keyを取得します。
Twitter API キーの取得手順 : まだプログラマーですが何か?

ここでほしいのはConsumer Key, Consumer Secret, Access Token, Access Token Secretの4つです。

#3. 実際にtwitterへの投稿
ここからは実際にpythonを用いてプログラムからツイートを投稿します。
以下の環境で行います。

  • windows 10
    • python 3.5.2 (Anaconda 4.2.0 64bit)

また以下のライブラリが必要です

  • requests_oauthlib
  • json
  • urllib

まずはライブラリのインポートを行います。

twitter_access.py
from requests_oauthlib import OAuth1Session
import json
from urllib import request

続いて先ほど取得したAPI keyを用いるために変数に代入、API keyを用いてOauthセッションを作成します。

twitter_access.py
keys = {
            "CK":'Consumer Key',
            "CS":'Consumer Secret',
            "AT":'Access Token',
            "AS":'Access Token Secret',
        }

sess = OAuth1Session(keys["CK"], keys["CS"], keys["AT"], keys["AS"])

このセッションを用いて決まったURLにアクセスしgetメソッド、
postメソッドを用いることでツイートやタイムラインの取得ができます。
この決まったURLを変えることにより様々なAPIをたたけます。
詳しい説明はTwitter Developer Documentationにあります。
実際にツイートする処理は以下のようになります。

twitter_access.py
url = "https://api.twitter.com/1.1/statuses/update.json"        
params = {"status":"Hello World!"}
#Hello World!の部分が実際にツイートされる

req = sess.post(url, params = params)

if req.status_code == 200:
    print ("OK")
else:
    print ("Error")

これでHello World!とツイートされます。
次はタイムラインの取得を書きます。

14
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?