Pythonを使ったTwitterAPIについて備忘録
色々忘れそうなので。いつも通り、適宜更新します…。
Twitter開発者登録をして、アプリを作成して、APIキー(昔はコンシューマーキーと呼ばれていた)と、アクセストークンを取得するところは割愛します。
インストールするパッケージ
pip install requests requests-oauthlib pip install twitter
【注意】以下userstreamは廃止されたようです。使わないようにしましょう。
https://userstream.twitter.com/1.1/user.json
「ホーム」タイムラインを取得する方法
REST APIは以下を使用します。
https://api.twitter.com/1.1/statuses/home_timeline.json
サンプルプログラム。APIキーやアクセストークンのところは、ご自分の情報に置き換えてください。
ここでは「ホーム」タイムラインから情報を抜き出し、ツイートしているユーザーの名前、ID、ID(文字列形式)、スクリーン名(@ほげほげ~ってやつ)、フォローしているかどうか、フォローリクエストを送ったかどうか、を出力します。
import json import re import subprocess import sys import time from requests_oauthlib import OAuth1Session HOMETL_URL = 'https://api.twitter.com/1.1/statuses/home_timeline.json' api_key = 'hogehogehoge' api_secret = 'hogehogehoge' accessToken = 'hogehogehoge' accessTokenSecret = 'hogehogehoge' oauth_session = OAuth1Session(api_key, api_secret, accessToken, accessTokenSecret) params = {'count':200} req = oauth_session.get(HOMETL_URL, params=params) if req.status_code == 200: # ヘッダーの表示 print("user\tid\tscreen_name\tfollowing\tfollow_req_sent") timeline = json.loads(req.text) for tweet in timeline: print("tweet['user']['name'] + "\t" + tweet['user']['id_str'] + "\t" + tweet['user']['screen_name'] + "\t" + str(tweet['user']['following']) + "\t" + str(tweet['user']['follow_request_sent']) )
req.textはただのjsonなので、json.loadsでディクショナリ型に直しています。
req.textを見てみると
[{"created_at":"Sun Sep 21 04:35:48 +0000 2020","id":9879347539573498hoge,"id_str":"9879347539573498hoge".....
というように識別子が並んでいるためtweet['user'][上記識別子]と指定すればいろいろ取得できそうです!