メインコンテンツへスキップ特定のトピックやイベントに関するX上の会話を見つけ出すうえで、Post検索は重要な機能です。Xにもこの機能はありますが、これらのエンドポイントはPostのフィルタリングや取り込みにおいて、より高い柔軟性と強力さを提供します。これにより、リサーチに関連するデータを見つけやすくなり、準リアルタイムの「リスニング」アプリケーションを構築したり、関心のあるトピックに関連するPostを探索・分析・活用したりできます。
Postを検索できるエンドポイントは2つあります:Recent search と full-archive search。これらのRESTエンドポイントは共通の設計と機能を持ち、特定のトピックに関するPostを絞り込む単一の検索クエリを使う点が共通です。検索クエリは、メッセージのキーワード、ハッシュタグ、URLなど、Postおよびユーザー属性にマッチする一連のオペレーターで構成します。オペレーターはブールロジックや括弧と組み合わせてクエリ化でき、マッチング動作をより精緻に制御できます。
recent search と full-archive search の両エンドポイントは、編集に関するPostメタデータを提供します。2022年9月29日以降に作成されたPostのオブジェクトには、Postが一度も編集されていない場合でも、編集メタデータが含まれます。Postが編集されるたびに、新しいPost IDが作成されます。Postの編集履歴は、元のIDから始まるPost IDの配列として記録されます。
これらのエンドポイントは、常に最新の編集内容と、存在する場合は編集履歴を返します。30分の編集可能時間を過ぎて収集されたPostは、その最終版を表します。Edit Postメタデータの詳細は、Edit Posts fundamentalsをご覧ください。
クエリを設定してPostの受信を開始すると、これらのエンドポイントは時間およびPost IDの範囲の両方で結果をナビゲートできます。これは、次の2つの一般的なユースケースを支援するための設計です:
- 履歴取得: リアルタイム性に重きを置かず、関心のある期間に対してリクエストします。単一のリクエストを行い、必要に応じてページネーションで一致するすべてのdataが配信されます。これはSearch Postsのデフォルトモードです。
- ポーリング または リスニング: 「前回のリクエスト以降に新しいPostはあるか?」というモードで継続的にリクエストします。通常、関心のあるPostを準リアルタイムで「リスニング」するユースケースに焦点があります。
多くのオペレーターおよびクエリ制限はEnterprise access専用です。追加機能を利用するには、Enterpriseアクセスを持つProject内のアプリのキーとトークンを使用する必要があります。詳細は以下のエンドポイントセクションをご覧ください。
recent search と full-archive search の各エンドポイントで返されるPostは、月次のPost capに算入されます。
アカウント設定
これらのエンドポイントにアクセスするには、以下が必要です:
X API v2 エンドポイントへのアクセス方法の詳細は、getting started guideをご覧ください。
Recent search エンドポイントは、過去1週間に投稿されたフィルタ済みの公開Postにプログラムでアクセスでき、developer accountを持ち、Project 内の App から取得したキーとトークンを使用しているすべての開発者が利用できます。
リクエストの認証には、OAuth 1.0a ユーザーコンテキスト、OAuth 2.0 App-Only、または OAuth 2.0 認可コード(PKCE 対応) を使用できます。ただし、private metrics や Post の結果におけるオーガニック指標とプロモーション指標の内訳を受け取りたい場合は、OAuth 1.0a ユーザーコンテキストまたは OAuth 2.0 認可コード(PKCE 対応)を使用し、当該コンテンツを投稿したユーザーに関連付けられたユーザー Access Tokens を渡す必要があります。
このエンドポイントは、逆時系列で1回のリクエストにつき最大100件の Post を返し、マッチする Post が多数ある場合にページングするための pagination トークンを提供します。
通常アクセスの Project を使用する場合、基本的な operators セットを利用でき、クエリは最大512文字まで作成できます。エンタープライズアクセスのある Project を使用する場合は、追加のオペレーターを利用でき、最大4096文字までクエリを作成できます。
access levels について詳しく学びましょう。
v2 の全アーカイブ検索エンドポイントは、プロアクセスおよびエンタープライズアクセスを持つプロジェクトでのみ利用可能です。指定した検索クエリに基づき、最初の Post が投稿された 2006 年 3 月まで遡る完全なアーカイブから公開 Post にプログラムでアクセスできます。
このエンドポイントへのリクエストは OAuth 2.0 App-Only を使用して認証でき、App Access Token はプロまたはエンタープライズアクセスを持つプロジェクト内のアプリから発行されたものである必要があります。このエンドポイントでは他のユーザーに代わってリクエストを行うこと(OAuth 1.0a ユーザーコンテキストまたは OAuth 2.0 認可コード(PKCE 対応))はできないため、非公開のmetricsを取得することはできません。
このエンドポイントはリクエストごとに最大 500 件の Post を新しい順で返し、マッチする大量の Post をページングするためのページネーショントークンを提供します。
注意: tweet.fields パラメータでannotationsを要求する場合、max_results パラメータの上限は現在 100 に制限されています。今後変更される可能性はありますが、この制限にご留意ください。
このエンドポイントはプロおよびエンタープライズアクセスの承認を受けた方のみが利用できるため、検索operatorsのフルセットにアクセスでき、最大 1024 文字のクエリを作成できます。
参考資料
Postman を使ったリクエスト方法
エラーのトラブルシュート
API リファレンスページ