メインコンテンツへスキップ

Timelines endpoint との統合方法

このページでは、Timelines endpoint をシステムに統合する際に把握しておくべき各種ツールと重要な概念について説明します。ページは次のセクションに分かれています。

便利なツール

いくつかの主要な概念を説明する前に、これらのendpointの機能をテストし始める手段として、次のツールまたはコードサンプルのいずれかを使用することを推奨します。 コードサンプル お好みのプログラミング言語でこれらのendpointをセットアップするためのコードをお探しですか?出発点として利用できる各種コードサンプルを、当社のGitHubページで提供しています。 ライブラリ 作業開始にあたっては、当社の多数のコミュニティ製サードパーティライブラリのいずれかをご活用ください。適切なバージョンタグを確認することで、v2のendpointに対応したライブラリを見つけられます。 Postman Postmanは、これらのendpointをテストするのに適したツールです。各Postmanリクエストには、利用可能な項目を迅速に把握できるよう、すべてのパスおよびボディのパラメータが含まれています。Postmanコレクションの詳細は、Using Postmanをご参照ください。

重要な概念

認証 すべての X API v2 の endpoint へのリクエストは、キーおよびトークンとしても知られる一連の認証情報で認証する必要があります。これらの endpoint へのリクエストの認証には、OAuth 1.0a ユーザーコンテキストまたは OAuth 2.0 Authorization Code(PKCE 付き)のいずれかを使用できます。ユーザーの Posts タイムラインおよびユーザーのメンションタイムラインには OAuth 2.0 App-Only を使用できます。 OAuth 1.0a ユーザーコンテキストでは、リクエストに付与して送信する認可ヘッダーを作成するために、API Key、ユーザーの Access Tokens、その他いくつかのパラメータを使用します。Access Tokens は、あなたが代理してリクエストを行うユーザーに関連付けられている必要があります。別のユーザー向けに一連の Access Tokens を生成する場合は、そのユーザーが3-legged OAuth フローを使用してあなたの App を承認する必要があります。  OAuth 1.0a は扱いが難しい場合があります。この認証方式に不慣れな場合は、ライブラリの利用、Postman のようなツールの使用、または OAuth 2.0 を用いた認証をおすすめします。これらの endpoint から Post や非公開の metrics を取得したい場合は、コンテンツ所有者の適切な許可を確保するため、OAuth 1.0a ユーザーコンテキストまたは OAuth 2.0 Authorization Code(PKCE 付き)のいずれかを使用する必要があります。 OAuth 2.0 App-Onlyは、リクエストにOAuth 2.0 App Access Tokenを付与するだけで利用できます。App Access Token は、developer App 内から直接生成するか、POST oauth2/token endpoint を使用して生成できます。これはユーザーの Posts タイムラインまたはユーザーのメンションタイムラインに使用できます。 OAuth 2.0 Authorization Code(PKCE 付き)は、アプリケーションのスコープや複数デバイス間にわたる認可フローをより細かく制御できます。OAuth 2.0 では、ユーザーに代わって特定の権限を付与する粒度の細かいスコープを選択できます。  App で OAuth 2.0 を有効にするには、developer portal の App 設定セクションにある App の認証設定で有効化してください。
ご注意ください以下のfieldsをリクエストする場合、OAuth 1.0a ユーザーコンテキストまたは OAuth 2.0 Authorization Code が必要です: 
  • tweet.fields.non_public_metrics
  • tweet.fields.promoted_metrics
  • tweet.fields.organic_metrics
  • media.fields.non_public_metrics
  • media.fields.promoted_metrics
  • media.fields.organic_metrics
Developer portal、Projects、および developer Apps 任意の X API v2 の endpoint を利用するには、デベロッパーアカウントに登録し、そのアカウント内にProjectを設定し、その Project 内にdeveloper Appを作成する必要があります。該当する developer App 内のキーおよびトークンは、これらのタイムライン endpoint で使用できます。 レートリミット 毎日、何千もの開発者が X API にリクエストを送信しています。ボリュームを管理するため、各 endpoint にはレートリミットが設けられており、各開発者がアプリまたは認証済みユーザーに代わって行えるリクエスト数を制限しています。  これらの endpoint には、使用する認証方式に応じて異なるレートリミットが適用されます。アプリレベルのレートリミットは OAuth 2.0 App-Only でリクエストを行う App に、ユーザーレベルのレートリミットは OAuth 1.0a ユーザーコンテキストで特定の承認ユーザーに代わって行うリクエストに適用されます。これら 2 種類のレートリミットは、15 分間のウィンドウ内でのリクエスト頻度に基づきます。 たとえば、これら両方のタイムライン endpoint に対して OAuth 2.0 App-Only 認可を使用する App は、15 分間の時間枠内でユーザーの Post タイムラインに 1500 件(ページネーションのリクエストを含む)、ユーザーのメンションタイムラインに 450 件(ページネーションのリクエストを含む)のリクエストを行えます。同じ App は、同一の 15 分間の時間枠内において、2 人の異なる認可済みユーザー(OAuth 1.0a ユーザーコンテキストを使用)それぞれに対して、ユーザーの Post タイムラインに 900 件(ページネーションのリクエストを含む)、ユーザーのメンションタイムラインに 180 件(ページネーションのリクエストを含む)のリクエストを行えます。  逆時系列のホームタイムラインには、ユーザーごとのレートリミットとして 15 分あたり 180 リクエストが設定されています。この endpoint では、過去 7 日間にタイムライン上で作成されたすべての Post に加え、作成日に関わらず最新の 800 件を返すことができます。 Fields と expansions X API v2 では、fieldsexpansions を使用して、API から返したい data を正確に選択できます。expansions パラメータは、ペイロード内で参照されているオブジェクトを展開できます。たとえば、この endpoint では、expansions パラメータを使用して poll、place、media などのオブジェクトをリクエストできます。 fields パラメータを使用すると、各種データオブジェクト内のどの fields を受け取りたいかを正確に選択できます。デフォルトでは、これらの endpoints によって返される主要な Post オブジェクトには id と text の fields が含まれます。author_id や public_metrics などの追加の fields を受け取るには、fields パラメータを使用して明示的にそれらをリクエストする必要があります。連携での利用を検討すべき重要な fields には、poll の data、metricsPost annotations、および conversation ID の fields があります。 fields と expansions の使い方 に関するガイドを X API v2 データディクショナリ に追加しました。 Post metrics X API v2 の endpoints では、適切な fields をリクエストに含めた場合、返される Post オブジェクトから直接 Post metrics を取得できます。 Post metrics には、ユーザーのプライバシーに関連し、以下のレスポンス fields に関わるいくつかの制限があります。
  • tweet.fields.non_public_metrics
  • tweet.fields.promoted_metrics
  • tweet.fields.organic_metrics
  • media.fields.non_public_metrics
  • media.fields.promoted_metrics
  • media.fields.organic_metrics
記載の fields にはプライベートな metrics の data が含まれます。つまり、ユーザーの Post タイムライン endpoint を使用する際に、その data を代理で取得するには、Post の投稿者の認可が必要であり、OAuth 1.0a User Context または OAuth 2.0 Authorization Code Flow with PKCE を使用する必要があります。 たとえば、ユーザー ID 1234 のユーザー Post タイムラインで non_public_metrics を受け取るには、そのユーザーに関連付けられた access tokens をリクエストに含める必要があります。ユーザーにあなたの App を認可してもらい、3-legged OAuth フロー を使用して、そのユーザーに関連付けられた一連の access tokens を受け取ることができます。  ユーザーのメンションタイムラインを使用している場合、記載の fields は、メンションした投稿者があなたの App に対して自身のプライベートな metrics の data へのアクセスを認可し、かつ OAuth 1.0a ユーザーコンテキストでそのユーザーの access tokens を使用してリクエストしている場合を除き、利用できません。 すべての non_public_metrics、organic_metrics、promoted_metrics は、過去 30 日以内に作成された Posts に対してのみ利用可能です。つまり、これらの fields をリクエストする場合、結果は自動的に調整され、過去 30 日間の Posts のみが含まれます。 これらの fields がリクエストされた場合、認証済みユーザーが作成した Posts のみが返され、それ以外の Posts にはエラーメッセージが返されます。 Pagination これらの endpoints はページネーションを利用して、レスポンスを迅速に返します。1 回のレスポンスで送信できる結果数(タイムライン endpoints では最大 100 Posts)を超える場合は、ページネーションが必要です。1 ページあたりに返す結果数は max_results パラメータで指定し、次ページの結果を返すには pagination_token パラメータを使用します。詳細は pagination ガイド をご確認ください。 結果のフィルタリング これらの endpoint には、結果を絞り込むために使用できる複数のパラメータが含まれています。start_date と end_date を使用すると、特定の期間に結果を限定できます。特定の Posts の集合を Post ID で選択したい場合は、since_id と until_id を使用できます。ユーザー Post タイムラインには、結果からリツイートと返信を除外できる exclude パラメータもあります。  Post 上限と返される Posts のボリューム ユーザー Post タイムラインとユーザーメンションタイムラインの endpoint には、月ごとに返せる Posts の数に制限があります。逆時系列のホームタイムライン endpoint にはこの制限は適用されません。 どの timeline endpoint を使用しても、返された Posts は Project レベルのPost 上限にカウントされます。使用状況は developer portal に表示され、「月」はdeveloper portal dashboardに示されるサブスクリプションの更新日から始まります。  ユーザー Post タイムライン endpoint は、ユーザーのタイムラインに投稿された直近の 3200 件の Posts のみを返します。start_time と end_time を、直近 3200 件を超える期間に設定した場合、レスポンスは成功しますが、Posts は返されません。 また、ユーザー Post タイムラインのリクエストに excludes=replies を渡した場合は、直近の 800 件の Posts のみが返される点にも注意してください。 ユーザーメンションタイムライン endpoint は、直近の 800 件の Post メンションのみを返します。 逆時系列のホームタイムライン endpoint は、直近の 3200 件の Posts を返します。 Post の編集 編集対象の Post は、元の Post が公開されてから 30 分の間に最大 5 回まで編集できます。検索 endpoint は常に Post の最新バージョンを返します。公開から 30 分以上経過した Posts のみをリクエストする場合、常に最終版の Post を受け取ります。ただし、ほぼリアルタイムのユースケースで過去 30 分以内に公開された Posts を query している場合、それらの Posts は受信後に編集されている可能性があります。これらの Posts は検索、または Post Lookup endpoint で再取得して最終状態を確認できます。Post の編集の仕組みについて詳しくは、Edit Posts の基礎ページをご覧ください。   イレギュラーケース
  • ユーザー Post タイムライン endpoint で、30 日より古い Posts に対して非公開 metrics をリクエストする場合、結果数が 0 の next_token がレスポンスに含まれることがあります。この問題を回避するには、non_public_metrics パラメータでリクエストする期間を直近 30 日以内にしてください。加えて、max_results の最小値は 10 に設定してください。これらは回避に役立つ可能性がありますが、それでも発生する場合があります。
  • プロモーションされていない Posts に対して promoted metrics をリクエストすると、Post data の代わりに空のレスポンスが返されます。現在、この問題の修正に取り組んでいます。
  • 本文テキストが 140 文字を超える Post を含むリツイートの場合、Post の全文を返す代わりに text フィールドが切り詰められます。短期的な回避策としては、参照先の Post を展開し、そこから全文を取得してください。これは将来的に修正予定の不具合です。
次のステップ [Make your first request to a Timelines endpoint]/x-api/posts/timelines#getting-started-with-reverse-chronological-home-timeline “Make your first request to a Timelines endpoint”) API リファレンスページでパラメータ、fields などの完全な一覧を見る サポートの取得またはエラーのトラブルシューティング
I