Twitter APIの使い方【Python】
こんにちは、しーたです。
最近Twitter APIの使い方が分かってきたのでメモを残します。
OAuth認証、という方法を使っていきます。
今回は例としてタイムラインを取得します。
ソースコード
# -*- coding: utf-8 -*-
import json, config
from requests_oauthlib import OAuth1Session
#認証処理
CK = config.CONSUMER_KEY
CS = config.CONSUMER_SECRET_KEY
AT = config.ACCESS_TOKEN
ATS = config.ACCESS_TOKEN_SECRET
twitter = OAuth1Session(CK, CS, AT, ATS)
url = "https://api.twitter.com/1.1/statuses/user_timeline.json" #タイムライン取得エンドポイント
params ={'count' : 5} #取得数
res = twitter.get(url, params = params)
if res.status_code == 200: #正常通信出来た場合
timelines = json.loads(res.text) #レスポンスからタイムラインリストを取得
for line in timelines: #タイムラインリストをループ処理
print(line['user']['name']+'::'+line['text'])
print(line['created_at'])
print('*******************************************')
else: #正常通信出来なかった場合
print("Failed: %d" % res.status_code)
config.pyを作る
CONSUMER_KEY = '#your key'
CONSUMER_SECRET_KEY = '#your key'
ACCESS_TOKEN = '#your token'
ACCESS_TOKEN_SECRET = '#your token'
取得したAPIキー, トークンを入れておくファイルです。
main.pyで認証処理を書く
import json, config
from requests_oauthlib import OAuth1Session
#認証処理
CK = config.CONSUMER_KEY
CS = config.CONSUMER_SECRET_KEY
AT = config.ACCESS_TOKEN
ATS = config.ACCESS_TOKEN_SECRET
twitter = OAuth1Session(CK, CS, AT, ATS)
エンドポイントを指定する
url = "https://api.twitter.com/1.1/statuses/user_timeline.json" #タイムライン取得エンドポイント
使う機能のエンドポイントを指定します。エンドポイントは下記URLの「リソースURL」です。
パラメータを指定する
params ={'count' : 5} #取得数
パラメータを指定します。
今回は全て「任意」となっているので、"parames = {}"でも良かったのですが、count(ツイートの取得件数)を指定してみました。
リクエストを送信する
res = twitter.get(url, params = params)
GETリクエストを送信します。リクエストには主にGETとPOSTがありますが、今回はドキュメントにGETと書いてあるので"twitter.get()"となっています。resにはAPIから帰ってきたレスポンスが代入されます。
レスポンスを表示する
f res.status_code == 200: #正常通信出来た場合
timelines = json.loads(res.text) #レスポンスからタイムラインリストを取得
for line in timelines: #タイムラインリストをループ処理
print(line['user']['name']+'::'+line['text'])
print(line['created_at'])
print('*******************************************')
else: #正常通信出来なかった場合
print("Failed: %d" % res.status_code)
resに格納されたレスポンスを表示します。
if文を使って、帰ってきたステータスコードが200(成功)以外の場合、エラー内容を表示できるようにしています。
レスポンスの内容はドキュメントにある例のようなjson形式になっています。これを見ながら、タイムラインをターミナルに表示するプログラムを書きました。
以上でした!これを応用すればTwitter APIの全機能使えそうです。