結果だけでなく過程も見てください

日々の奮闘を綴る日記です。

Pythonを使ったTwitterAPIについて備忘録

色々忘れそうなので。いつも通り、適宜更新します…。
Twitter開発者登録をして、アプリを作成して、APIキー(昔はコンシューマーキーと呼ばれていた)と、アクセストークンを取得するところは割愛します。

環境

Windows 10 version 1903
Python 3.6.4

インストールするパッケージ

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'][上記識別子]と指定すればいろいろ取得できそうです!

プライバシーポリシー お問い合わせ