サイトのトップへ戻る

Twitter 開発者 ドキュメント日本語訳

ストリーミングAPI

概要

ストリーミングAPIを使うことで、開発者はTwitterにおけるツイートデータのグローバルストリームに低レイテンシでアクセスすることができます。 適切に実装すれば、RESTエンドポイントへポーリングする時のような負荷をかけずに、ツイートやその他イベントが発生したことを示すメッセージをクライアントへ通知できます。

複雑な検索をしたり、ユーザープロフィール情報を読み込んだり、ツイートを投稿したりするのであれば、代わりにREST APIs の使用を検討してください。

Twitterでは、それぞれ特定の用途向けにカスタマイズされた複数のエンドポイントを用意しています。

公開ストリーム Twitter上を流れる公開データのストリーム。特定のユーザーやトピックをフォローしたり、データマイニングに適しています。
ユーザーストリーム ユーザー一人のストリーム。Twitterのシングルユーザービューで参照できるほぼ全てのデータを網羅する。
サイトストリーム ユーザーストリームのマルチユーザー版。サイトストリームは、多くのユーザーに代わってTwitterに接続しなければならないサーバを対象としています。


ストリーミング とRESTの違い

ストリーミングAPIに接続するにはHTTP コネクションをずっと開いたままにしておく必要があります。 多くの場合、REST APIを使用した時とは異なったアプリケーション構造になると思ってください。 例えば、ユーザーリクエストを受けるウェブアプリケーションがTwitter APIに対してリクエストを投げ、その結果を初回リクエストに対する応答としてそのユーザーへ出力する場合を考えてみましょう。:

RESTでは上記例で示すように、ストリーミングAPIと接続中のアプリケーションはユーザーのリクエストに対する応答接続を確立することができません。 一方ストリーミングの場合、ストリーミングAPIとの接続を維持するためのコードは通常、HTTPリクエストを処理するプロセスとは別のプロセス上で動作します:

Diagram of two server processes, where one process receives streamed Tweets, while the other handles HTTP requests

ストリーミングを処理するプロセスでは、ツイートを取得するとその結果をデータストアに保存する前に、解析、フィルタ、必要に応じて統計を行います。 HTTPを処理するプロセスでは、ユーザーのリクエストに対しての応答結果をデータストアに問い合わせます。 このモデルはRESTの例よりも複雑ですが、ツイートデータのリアルタイムストリームを扱えれば、様々なアプリを作る際に非常に役立つことでしょう。