制御ストリームでは、開発者が指定したサイトストリーム接続の状態を参照したり編集したりできる、RESTベースのインタフェースが使用できます。 Use the same three-legged OAuth patterns you use to connect to Site Streams, where the access token used belongs to the user that owns the application that bears access tokens for the users you’re streaming on behalf of.
現時点では、制御ストリームを使って以下のことができます:
サイトストリームへの接続を開いた後、 you will be streamed a new event that will declare a specific URI path for you to base control requests from in the format of /:version/site/c/:stream_id
. “control” イベント内の“control_uri”ノードからURLパスを取得できます。
{ "control": { "control_uri":"/1.1/site/c/1_1_54e345d655ee3e8df359ac033648530bfbe26c5f" } }
このパスの“/1.1/site/c/”以降の部分は、ストリームのユニークstream_id
です。このストリームが切断されると、 stream_id
は無効になります。上記の例では、 stream_id
は “1_1_54e345d655ee3e8df359ac033648530bfbe26c5f” です。
サイトストリーム接続で最初に配信されるメッセージが、必ずcontrol
メッセージになるとは限らないので注意してください。
他のタイプのメッセージが最初に配信されてきた場合でも処理できるように、コードを記述して下さい。
URI 形式: GET /1.1/site/c/:stream_id/info.json
control
メッセージから取得したstream_id
を使い、 GET リクエストを作成して現在ストリーム上取り込んでユーザーの情報を取得することができます。
取得できる情報には、どれくらいの接続があるか、あなたは指定したユーザーへのRW+DM アクセス権を持っているかどうか、その他現段階では必要のない様々な情報があります。
This is the most reliable way to determine which users are being streamed over a particular connection.
GET /1.1/site/c/1_1_54e345d655ee3e8df359ac033648530bfbe26c5f/info.json
{ "info": { "users": [ { "id":119476949, "name":"oauth_dancer", "dm":false } ], "delimited":"none", "include_followings_activity":false, "include_user_changes":false, "replies":"none", "with":"user" } }
サイトストリームのcontrol
メッセージと違って、 “info request” 内にユーザーがフォローしているユーザーIDの配列が含まれていないことに気づいたでしょうか。
この情報を取得するには、制御ストリームのfriends/idsメソッド(REST APIのfriends/idsメソッドと同じ機能を持つ)を使用することができます。
A control stream may not be ready for manipulation and querying directly after receiving the control event — it may take as much as a minute for a stream info request to fully reflect the users currently connected to the specified stream.
URI 形式: POST /1.1/site/c/:stream_id/add_user.json
ユーザーを現在のコネクションに追加するには、以下のような OAuth POST を送信するだけでとても簡単です:
POST /1.1/site/c/1_1_54e345d655ee3e8df359ac033648530bfbe26c5f/add_user.json
POST body: user_id=819797
あなたがユーザーのアクセストークンを持っていれば、これでユーザー 819797 が現在のストリームに追加されます。指定してユーザー(達)が追加できなかった場合は、次のようなメッセージが付いた 400 Bad Request HTTP code が取得されます: “No authorized followings found for your request”
追加リクエストが成功すると、空の 200 OK 応答が返ります。 The user(s) will be added to your specified stream and you’ll see the “preamble” for the added user(s) in your stream near immediately.また、“info”エンドポイントに別のGETリクエストを発行してストリームが変更されたか確認することもできます。
user_id
パラメータは、コンマで区切って最大100ユーザー分のIDを設定できます。info
メソッドであなたのストリーム上の接続数を監視し、接続制限を越えないようにして下さい。 新しいユーザーのためのスペースを確保するには、 remove_user
を使ってユーザーをストリームから削除してください。
サイトストリームへの最初の接続では、100ユーザーを指定できます。1接続あたり最大1,000ユーザーまでストリーム内に取り込めますが、101人目から1000人目のユーザーを追加するには、サイトストリームごとに 1秒間に25リクエスト を超えないペースで、add_user メソッドを使って追加しなければなりません。 This allows you to add around 2,500 users per second to your current pool of site streams connections.
URI 形式: POST /1.1/site/c/:stream_id/remove_user.json
ユーザーを現在のコネクションから削除するには、以下のような OAuth POST を送信するだけでとても簡単です:
POST /1.1/site/c/1_1_54e345d655ee3e8df359ac033648530bfbe26c5f/remove_user.json
POST body: user_id=819797
あなたがユーザーのアクセストークンを持っており、そのユーザーがストリームに取り込まれていれば、これでユーザー 819797 が現在のストリームから削除されます。 指定してユーザー(達)が追加できなかった場合は、次のようなメッセージが付いた 400 Bad Request HTTP code が取得されます: “No authorized followings found for your request”
削除リクエストが成功すると、空の 200 OK 応答が返ります。 The user will be removed from your specified stream and you’ll see the “preamble” for the added users in your stream near immediately. また、“info”エンドポイントに別のGETリクエストを発行してストリームが変更されたか確認することもできます。
URI 形式: POST /1.1/site/c/:stream_id/friends/ids.json
このメソッドは、対象範囲が指定したストリーム上のユーザーに限定されることを除けば、REST API の GET friends / ids と同じ働きをします。 The list of followings/friends is definitive in that it’s what the Site Streams connection is aware of for the specified user. REST API と同じ方法でカーソルが使用できます。
POST /1.1/site/c/1_1_54e345d655ee3e8df359ac033648530bfbe26c5f/friends/ids.json
POST body: user_id=119476949
{ "follow": { "user": { "id":119476949, "name":"oauth_dancer", "dm":false }, "friends": [ 795649, 819797, 1401881, 3191321, 6253282, 8285392, 9160152, 13058772, 15147442, 15266205, 15822993, 27831060, 101058399, 289788076 ], "previous_cursor":0, "next_cursor":0 } }
このドキュメントの最新の変更は以下の通りです: