ストリーミングデータを取得する際には、接続時間を最大限に伸ばし、条件に一致したすべてのデータを受信することが基本的な目標になります。つまり、冗長な接続を活用し、自動的に切断を検知して速やかに再接続し、失われたデータを復旧するための計画を用意しておくことが重要です。 このインテグレーションガイドでは、冗長接続、バックフィル、および復旧といった、さまざまな復旧と冗長性の機能について説明します。Documentation Index
Fetch the complete documentation index at: https://generaltranslation.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
冗長接続
バックフィル
backfillMinutes を使用できます。 このパラメータを GET /powerstream リクエストに指定すると、直近 1〜5 分間にルールにマッチした投稿を受け取ることができます。通常、これらの古い投稿は新たにマッチした投稿よりも先に配信され、また投稿の重複排除は行われません。つまり、90 秒間切断されていたにもかかわらず 2 分間分のバックフィルデータを要求した場合、30 秒分の重複した投稿を受け取ることになり、システム側でそれを許容できるようにしておく必要があります。以下は、バックフィルパラメータを指定したリクエスト例です。
curl 'https://api.x.com/2/powerstream?backfillMinutes=5' -H "Authorization: Bearer $ACCESS_TOKEN"
切断時間が 5 分を超えていたと判断できた場合は、recent search endpoint もしくはリカバリ機能を利用して、取り逃したデータを取得できます。
リカバリ
startTime と endTime リクエストパラメータを使用して接続リクエストを行うと、リカバリストリームが開始されます。接続されると、Recovery は指定された期間のデータを再ストリーミングし、その後切断します。
| Name | Type | Description |
startTime | date (ISO 8601) | YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339)。 リカバリを開始する時刻を表す UTC の日時。 |
endTime | date (ISO 8601) | YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339)。 リカバリを終了する時刻を表す UTC の日時。 |
https://api.x.com/2/powerstream?startTime=2022-07-12T15:10:00Z&endTime=2022-07-12T15:20:00Z