はじめに
切断後の取り逃したデータの復旧: バックフィル
curl 'https://api.x.com/2/tweets/search/stream?backfill_minutes=5' -H "Authorization: Bearer $ACCESS_TOKEN"
Enterprise アクセス権がない場合、または切断時間が 5 分を超えていたと判別された場合は、取り逃したデータをリクエストするために recent search endpoint かリカバリー機能を利用できます。ただし、投稿検索エンドポイントには sample:、bio:、bio_name:、bio_location: オペレーターは含まれておらず、キーワードおよび #hashtag オペレーターでアクセントやダイアクリティカルマークを使用した場合のマッチング動作にもいくつか違いがあります。これらの違いにより、filtered stream エンドポイント経由で受信できていたはずのすべての投稿を完全には復旧できない可能性があります。
切断後の取り逃したデータの復旧: Recovery
Enterprise アクセス権を持つ Project を使用している場合、5 分のバックフィルウィンドウ内に再接続できなかったときでも、Recovery 機能を使用して直近 24 時間以内の取り逃したデータを復旧できます。
ストリーミングのリカバリー機能を使用すると、24 時間の拡張バックフィルウィンドウを利用できます。Recovery によって、取り逃した期間のデータを「再生」できます。Recovery ストリームは、‘start_time’ と ‘end_time’ リクエストパラメータを使って接続リクエストを行ったときに開始されます。接続されると、Recovery は指定された時間範囲のデータを再ストリームし、その後切断します。
Recovery に対して同時に 2 件のリクエスト、つまり「2 つのリカバリージョブ」を行うことができます。Recovery は、開始時刻と終了時刻が定義される点を除けば、技術的には backfill と同じように動作します。1 回のリカバリー期間は 1 つの時間範囲に対応します。
| Name | Type | Description |
| start_time | date (ISO 8601) | YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339). 復旧を開始する時刻を示す UTC の日時。 |
| end_time | date (ISO 8601) | YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339). 復旧を終了する時刻を示す UTC の日時。 |