ソーシャルストリームメッセージは、単純なHTTP GETリクエストで取得することができます。 OAuth2認証は必要ないので、"Authorization"ヘッダは送らないようにしてください。
初回のソーシャルストリームリクエストでは、以下のようなHTTP GET リクエストを実行するようにしてください。:
http://socialstream.ustream.tv/socialstream/get.json/CHANNEL_ID/default
CHANNEL_ID の値にはチャンネル一覧でサーバから取得できる"id"と同じ値を設定します。
戻り値はJSON形式の文字列になります。:
{
"success":true,
"refreshInterval":10,
"range":[0,1302176480],
"payload":[
{
"uid":1
"type":"msg",
"text":"MESSAGE_TEXT",
"createdAt":"UTC_TIMESTAMP",
"isOwner":0,
"profilePictureUrl":"http://static.ustream.tv/na.jpg",
"profileNetwork":"twitter",
"profileUserName":"Gyula",
"network":[
{
"provider":"twitter",
"displayName":"Gyula"
}
]
}
]
}
ソーシャルストリームメッセージは、"payload"配列の中に辞書型の形で入っています。メッセージの各要素以下の通り:
| 名前 | 説明 |
|---|---|
| uid | メッセージの識別子 |
| type | ソーシャルストリームメッセージの場合は"msg" となります。他のメッセージタイプについてはセクション 5.1.3.を参照してください。 |
| createdAt | このメッセージのタイムスタンプ(UTC形式) |
| isOwner | このチャンネルの所有者のメッセージであれば1が入ります。そうでなければ0が入ります。 |
| profilePictureUrl | メッセージ送信者のプロフィール写真 |
| profileNetwork | このメッセージがどのSNSで書き込まれたものなのかを表します。 "twitter", "facebook", "ustream"といった設定値をサポートしています。 |
| profileUserName | 送信者が、メッセージを発信したSNS上で使っているユーザー名 |
| network | このユーザーが所属しているSNSの一覧を配列型の値で表します。network内の"provider"要素には、SNSの種類が保持されています。("twitter", "facebook", "ustream"といった設定値をサポートしています), "displayName"要素には、メッセージ送信者のSNS上の名前が保持されています。 |
ソーシャルストーリームリクエストを初期化するのは、セッション開始時のみに限定したほうが良いです(ソーシャルストーリームリクエストの初期化については前項を参照)。 初回のリクエストをした後は、時間を置いて定期的に、ソーシャルストリームへの新規問い合わせをする必要があります。:
http://socialstream.ustream.tv/socialstream/get.json /CHANNEL_ID/timeslice/RANGE/REFRESH_INTERVAL
"RANGE"パラメータには直前のリクエストで取得した"range"配列の、二番目の値を設定します(例 "range":[0,1302176480])。 "REFRESH_INTERVAL" パラメータには直前のリクエストで取得した "refreshInterval" の値を設定します。(例 "refreshInterval":10)
このクエリの応答はチャプター5.1.1で説明したものと同じ形式になります。 クライアントは、加えて以下のことに気をつける必要があります。:
"payload" セクションは、追加で以下のようなメッセージも保持することも可能です:
ソーシャルストリームのホストを変更する:
このメッセージを受信した場合、次のクエリからは新しいサーバに対して実行する必要があります:
{
"type": "host",
"host": "http://socialstream2.ustream.tv"
}
メッセージを無視する:
このメッセージを受信した場合、クライアントでは指定されたメッセージをチャットウィンドウから削除する必要があります。:
{
"type": "ignMsg",
"uid": "123456"
}
ユーザーを無視する:
このメッセージを受信した場合、クライアントはチャットウィンドウから指定されたユーザーの全てのメッセージを削除し、 以降は同様に全てのメッセージを無視する必要があります。:
{
"type": "ignUser",
"network": [{"provider":"twitter", "displayName":"Gyula"}]
}
ユーザーを無視しない:
このメッセージを受信した場合、クライアントでは指定されたユーザの以降のメッセージをチャットウィンドウに表示させるようにする必要があります:
{
"type": "unIgnUser",
"network": [{"provider":"twitter", "displayName":"Gyula"}]
}
サードパーティでは、現在ソーシャルストリームへメッセージを送ることができません。