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

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

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

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

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

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

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

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

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

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

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

Response

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

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

options
イベントのロングポーリングエンドポイントを取得
You can now try out some of our APIs live, right here in the documentation.
Log in

Request Example

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
	});
});

Response Example

{
  "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
    }
  ]
}