こちらのコードにて
r = session.post(uri, data=dict(track="Python"), stream=True)
とするとPythonという文字を含んだtweetを取得できるのが分かるのですがタイムラインを取得する方法が分かりません。
上記の部分の引数にtimelineを指定するようなものを選択すれば良いのでしょうか。
また、ユーザーを指定してtweetを取得すれば良いのでしょうか。
ストリーミングについて無知で見当違いの事を言っているかも知れませんがお知恵をお貸しいただけると幸いです。
やりたい事としてはタイムラインのtweetをなるべく早く取得したいです。
python3
1import json 2import requests_oauthlib 3 4uri = 'https://stream.twitter.com/1.1/statuses/filter.json' 5 6# 自分の環境用に置き換える 7consumer_key = 'your consumer key' 8consumer_secret = 'your consumer secret' 9access_token = 'your access token' 10access_token_secret = 'your access token secret' 11 12 13def main(): 14 session = requests_oauthlib.OAuth1Session( 15 consumer_key, consumer_secret, access_token, access_token_secret 16 ) 17 # "Python"が含まれるツイートを取得. 'stream=True'は必須. 18 r = session.post(uri, data=dict(track="Python"), stream=True) 19 for line in r.iter_lines(): 20 status = json.loads(line.decode("utf-8")) 21 for k, v in status.items(): 22 print(k, ":", v) 23 print("------------------------------") 24 25 26if __name__ == '__main__': 27 main()
ユーザーストリームは2018年に廃止されています。やりたいことの方を具体的に書くのがいいでしょう。
https://twitter.com/TwitterDev/status/982346370882461696
やりたい事としてはタイムラインのtweetをなるべく早く取得したいです。方法としてはストリーミングが使えないという事は高頻度で定期実行をする事でしょうか。もっと効率的な方法があるならば教えていただきたいです。よろしくお願い致します。
TwitterAPIにはいくつかの「タイムライン」が登場します。
自分がフォローしている人のツイート群という意味で合っているのでしょうけれども、質問する時に使う語としては具体的ではなくて解釈を要します。
なるべく早く取得したい、というのはTwitterクライアントのようにその時刻の直前のツイートを取得したいといことでしょうか。
「やりたいことの方を具体的に」と書いたのは「Twitterクライアントのように表示したい」とか「ファイルに保存しておきたい」とかそういう意味でした。「ツイートを取得する」というのは「やりたいこと」ではなくて手段に近い方の表現かと思います。
私が意図したタイムラインはおっしゃる通りで自分がフォローしている人のツイート群を取得したいという意味です。
やりたい事もおっしゃる通りでTwitterクライアントのようにその時刻の直前のツイートを取得したいといことです。
説明が足りず申し訳ありません。
あなたの回答
tips
プレビュー