概要
すべてのツイートを取得できるわけではない
・「REST APIs」より大量にツイートを取得できるが、それどもすべてのツイートを取得できるわけではない
過去は遡れない
・「いま」どんなTweetがツイートされているかをリアルタイムに取得するAPI
・過去のTweetsは含まれない
・マイナーなワードを指定すると、ノーリアクションとなったりもする
同一アカウントからの同時接続数は1本のみ
・同一アカウントから2本以上の接続があった場合、古い接続は強制的に切断される
使用するHTTPライブラリ
・レスポンスボディを全て読み込んでから返すタイプではなく、順次読み込んでいけるタイプのものでなくてはならない
サーバは接続の維持のために空行を送り返すことがある
・クライアントはそれを許容できる作りでなくてはならない
通常のstatusの他に、「ユーザがstatusを削除した」という通知など、他の情報も混ざって送られてくる
・適切に処理する必要がある
エラーや通信の遅延など、様々な要因によって接続が切断されることもある
・必要ならば自動で再接続する仕組みを組み込む
一部のAPIは膨大な量のデータを連続して返す
・それを受けるプログラムはパフォーマンスに関して相当な努力が必要い
・「REST APIs」より大量にツイートを取得できるが、それどもすべてのツイートを取得できるわけではない
過去は遡れない
・「いま」どんなTweetがツイートされているかをリアルタイムに取得するAPI
・過去のTweetsは含まれない
・マイナーなワードを指定すると、ノーリアクションとなったりもする
注意点
同一アカウントからの同時接続数は1本のみ
・同一アカウントから2本以上の接続があった場合、古い接続は強制的に切断される
使用するHTTPライブラリ
・レスポンスボディを全て読み込んでから返すタイプではなく、順次読み込んでいけるタイプのものでなくてはならない
サーバは接続の維持のために空行を送り返すことがある
・クライアントはそれを許容できる作りでなくてはならない
通常のstatusの他に、「ユーザがstatusを削除した」という通知など、他の情報も混ざって送られてくる
・適切に処理する必要がある
エラーや通信の遅延など、様々な要因によって接続が切断されることもある
・必要ならば自動で再接続する仕組みを組み込む
一部のAPIは膨大な量のデータを連続して返す
・それを受けるプログラムはパフォーマンスに関して相当な努力が必要い
ストリーミングAPIの種類
ストリーミングAPIの種類
Streamed Tweets
・垂れ流し系
・Public Timeline(パブリックタイムライン)の内容、つまり鍵のかかっていない発言を取得
User Stream
・特定ユーザの発言追跡系
・単一ユーザーのタイムライン、イベントを取得
Site Stream
・特定キーワードの抽出系
・複数ユーザーのタイムライン、イベントを取得
・Streaming APIs
・ストリーミングAPI - Twitter 開発者ドキュメント 日本語訳
Streamed Tweets
sample
パブリックなツイートのうち1%を取得
エンドポイント(GET)
・https://stream.twitter.com/1/statuses/sample.json
パラメータ
・なし
レスポンス
・statusオブジェクトのjson (REST APIと同じ)
filter
指定した条件のツイートを取得
エンドポイント(POST)
・https://stream.twitter.com/1/statuses/filter.json
パラメータ
follow
・指定ユーザーIDのツイートを取得 follow=1235,5678
track
・指定キーワードを含むツイートを取得
・1キーワードは60文字まで
・日本語はトークナイズされな
・日本語ハッシュタグは指定可能
・track=%25twtr_hack,%25twtter4j
locations
・区域を指定してツイートを取得
・locations=138.927,35.500,139.932,35.795 南西 北東 139.932,35.795
・経度・緯度順なのに注意138.927,35.500
レスポンス
・statusオブジェクトのjson (REST APIと同じ)