はじめに
サブでやっている研究の都合でTwitterからデータを取得する必要があり少し前に申請を通していたのですが、メインの研究が忙しくようやく暇ができたので取っ掛かりとしてタイムラインの取得とツイートを試してみました。
APIの申請ですが英語で記載されている通りに、目的(研究にツイッターを使う等)をつらつらと書いたら即日通っていたと思います。
とりあえず作った
認証を通してgetかpostを実行するだけなので、適当にまとめました。
#config.py #TwitterAPI認証キー CONSUMER_KEY = "----------" CONSUMER_SECRET = "----------" ACCESS_TOKEN = "----------" ACCESS_SECRET = "----------"
「config.py」はTwitterAPI認証キーを入力します。
認証キーはアプリ詳細にある「key and token」で見ることができます。
#twitter.py import json, config #認証情報 from requests_oauthlib import OAuth1Session #OAuthのライブラリの読み込み #認証処理 CK = config.CONSUMER_KEY CS = config.CONSUMER_SECRET AT = config.ACCESS_TOKEN AS = config.ACCESS_SECRET oauth = OAuth1Session(CK, CS, AT, AS) #データ取得 def get(url, params): res = oauth.get(url, params = params) #getメソッドの実行 #通信判定 if res.status_code == 200: #正常通信できた場合 return json.loads(res.text) #リストを返す else: #エラーの場合 return 0 #0を返す #データ送信 def post(url, params): res = oauth.post(url, params = params) #postメソッドの実行 #通信判定 if res.status_code == 200: #正常通信できた場合 return 1 #1を返す else: #エラーの場合 return 0 #0を返す
「twitter.py」はなんとなく関数にしたかったので作っただけです。oauth認証を書かなくていいくらいのショボ関数です。
実行してみた
とりあえずツイートをしてみました。
import twitter url = "https://api.twitter.com/1.1/statuses/update.json" #エンドポイント params = {"status" : "TestTweet"} #パラメータ if twitter.post(url, params = params): #送信成功 print("Success.") else: #送信失敗 print("error.")
結果はこんな感じで、うまくツイートできています。
次に自分のタイムラインを取得してみました。
import twitter url = "https://api.twitter.com/1.1/statuses/user_timeline.json" #エンドポイント params ={'count' : 3} #パラメータ timelines = twitter.get(url, params = params) #タイムラインの取得 if(timelines): for line in timelines: #リストをループ処理 print(line['text']) print('------------------------------')
実行結果は次の通り。
先ほどのツイートもしっかりと確認できました。
TestTweet ------------------------------ 実家到着 ------------------------------ twitterAPI登録だけしてたのを初めて触った。タイムラインも読めたしツイートできたので少し満足した。 近いうちにちゃんと運用する。 ------------------------------
終わりに
後はパラメータの種類と帰ってくるリストについて調べれば、役に立ってくれそうです。
コメント