イベントのロングポーリングエンドポイントを取得

options
https://api.box.com/2.0
/events/

イベントストリームへのロングポーリング更新に使用できるリアルタイムサーバーのリストを返します。

ロングポーリングとは、サーバーが応答を送信するまでHTTPリクエストを開いたままにしておき、そのプロセスを何度も繰り返して更新された応答を受信するというコンセプトです。

イベントストリームのロングポーリングは、ユーザーイベントについてのみ使用でき、エンタープライズイベントについては使用できません。

ロングポーリングを使用するには、最初にこのエンドポイントを使用してロングポーリングURLのリストを取得します。次に、取得した任意のURLに対してロングポーリングリクエストを発行します。

監視対象のアカウントでイベントが発生すると、new_changeという値を持つ応答が送信されます。この応答は、最新の既知のstream_positionを使用してeventsエンドポイントにリクエストを送信するなど、さらなるアクションを促すことだけを目的としているため、その他の詳細は含んでいません。

サーバーは、この応答を送信すると接続を閉じます。この時点でイベントのリスト化を再開するには、ロングポーリングプロセスを繰り返す必要があります。

しばらくイベントが発生せずに接続がタイムアウトになると、reconnectという値を持つ応答が届きます。この応答を受け取ったら、このエンドポイントを改めて呼び出してプロセスを再開します。

retry_timeout秒以内にイベントを受信しなかった場合は、リアルタイムサーバー(このエンドポイントの応答に含まれるURLの1つ)に別のリクエストを送信する必要があります。ネットワークエラーが原因で、これを実行しなければならない場合もあります。

また、リアルタイムサーバーへのリクエスト時にmax_retriesエラーを受信した場合は、まずこのエンドポイントを呼び出してからやり直す必要があります。

レスポンス

ロングポーリングイベントの通常のエンドポイントの代わりに使用できるページ割りされたサーバーの配列を返します。

予期しないクライアントエラー。

options
イベントのロングポーリングエンドポイントを取得
このドキュメント内で一部のAPIを試せるようになりました。
ログイン

リクエストの例

cURL
curl -i -X OPTIONS "https://api.box.com/2.0/events" \
     -H "Authorization: Bearer <ACCESS_TOKEN>"
Java
EventStream stream = new EventStream(api);
stream.addListener(new EventListener() {
    public void onEvent(BoxEvent event) {
        // Handle the event.
    }
});
stream.start();
Python
events = client.events().generate_events_with_long_polling()
for event in events:
    print('Got {0} event'.format(event.event_type))
Node
client.events.getEventStream(function(err, stream) {

	if (err) {
		// handle error
	}

	stream.on('data', function(event) {
		// handle the event
	});
});

レスポンスの例

{
  "chunk_size": 1,
  "entries": [
    {
      "type": "realtime_server",
      "url": "http://2.realtime.services.box.net/subscribe?channel=cc807c9c4869ffb1c81a&stream_type=all",
      "ttl": 10,
      "max_retries": 10,
      "retry_timeout": 610
    }
  ]
}