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

フルアーカイブのPost件数エンドポイントのはじめかた

このクイックスタートガイドでは、HTTPリクエストを送信できるグラフィカルツールである Postman を使って、フルアーカイブのPost件数エンドポイントに初めてリクエストする手順を説明します。 複数のプログラミング言語でのサンプルコードをご覧になりたい場合は、X API v2 sample code の GitHub リポジトリをご参照ください。

前提条件

フルアーカイブのPost件数エンドポイントは現在、プロまたはエンタープライズのアクセス権をお持ちの方のみご利用いただけます。このエンドポイントを使用するには、プロまたはエンタープライズアクセスを申請する必要があります。アクセスが承認されていることに加えて、リクエストを認証するための keys and tokens が必要です。以下の手順でキーとトークンを生成できます。
  • 開発者ポータルでエンタープライズアクセスを持つProjectに移動し、その Project 内に関連付けられたdeveloper Appがあることを確認します。
  • アプリの「Keys and tokens」ページに移動して、必要なクレデンシャルを生成します。すべてのクレデンシャルは安全な場所に保存してください。

フルアーカイブのPost件数リクエストを作成する手順

ステップ1:ツールまたはライブラリを用意する このエンドポイントにリクエストする方法はいくつかあり、ツール、コード例、ライブラリも複数ありますが、ここでは手順を簡略化するためにPostmanを使用します。 X API v2のPostmanコレクションを環境に読み込むには、次のボタンをクリックしてください。 PostmanにX API v2コレクションを読み込んだら、Post counts > Full-archive Post counts リクエストに移動します。 ステップ2:リクエストを認証する X APIに正しくリクエストするには、権限を確認する必要があります。このエンドポイントでは、OAuth 2.0 App-Only の認証方法でリクエストを認証してください。 キーとトークン、特に App Access Token(App-only Bearer Tokenとも呼ばれます)をPostmanに追加します。Postman右上の「X API v2」という環境を選択し、環境ドロップダウン右の目のアイコンをクリックして表示される「initial value」と「current value」のfieldsにキーとトークンを入力します。 正しく設定できていれば、この変数はリクエストのauthorizationタブに自動的に反映されます。   ステップ3:クエリを作成する 各フルアーカイブのPost件数リクエストには、1つのqueryが必要です。この例では、@XDevelopers アカウントが投稿したPostsに一致するクエリを使用します。ここでは from 演算子を使用し、値をXDevelopers(大文字小文字は不問)に設定します: from:XDevelopers Postmanで「Params」タブに移動し、このID、またはカンマ区切りの複数のPost IDの文字列を、ids パラメータの「Value」列に入力します。  
KeyValueDescription
queryfrom:XDevelopersフルアーカイブのPost件数エンドポイントに送信するクエリ
ステップ4(任意):粒度と期間を指定する ステップ3の後に「Send」ボタンをクリックすると、デフォルトのフルアーカイブのPost件数(過去30日分を時間単位で集計)が返されます。日単位で取得したい場合は、granularity パラメータに day を指定します。30日より前のPost件数が必要な場合は、start_time と end_time パラメータに希望の値を指定してください。  Postmanで「Params」タブに移動し、「Query Params」テーブルに次のキーと値の組み合わせを追加します:
KeyValueDescription
granularitydayPost件数結果の粒度。指定可能な値は day、hour、minute
start_time2021-05-01T00:00:00ZPostsが返される最も古いUTCタイムスタンプ
end_time2021-06-01T00:00:00ZPostsが返される最も古いUTCタイムスタンプ。
「Send」ボタンの横に次のURLが表示されるはずです: https://api.x.com/2/tweets/counts/all?query=from%3AXDevelopers&start_time=2021-05-01T00:00:00Z&end_time=2021-06-01T00:00:00Z&granularity=day ステップ5:リクエストを送信し、レスポンスを確認する すべての設定が完了したら、「Send」ボタンを押して、次のようなレスポンスを受け取ります。
{
   "data": [
       {
           "end": "2021-05-02T00:00:00.000Z",
           "start": "2021-05-01T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-03T00:00:00.000Z",
           "start": "2021-05-02T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-04T00:00:00.000Z",
           "start": "2021-05-03T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-05T00:00:00.000Z",
           "start": "2021-05-04T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-06T00:00:00.000Z",
           "start": "2021-05-05T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-07T00:00:00.000Z",
           "start": "2021-05-06T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-08T00:00:00.000Z",
           "start": "2021-05-07T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-09T00:00:00.000Z",
           "start": "2021-05-08T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-10T00:00:00.000Z",
           "start": "2021-05-09T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-11T00:00:00.000Z",
           "start": "2021-05-10T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-12T00:00:00.000Z",
           "start": "2021-05-11T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-13T00:00:00.000Z",
           "start": "2021-05-12T00:00:00.000Z",
           "tweet_count": 6
       },
       {
           "end": "2021-05-14T00:00:00.000Z",
           "start": "2021-05-13T00:00:00.000Z",
           "tweet_count": 1
       },
       {
           "end": "2021-05-15T00:00:00.000Z",
           "start": "2021-05-14T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-16T00:00:00.000Z",
           "start": "2021-05-15T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-17T00:00:00.000Z",
           "start": "2021-05-16T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-18T00:00:00.000Z",
           "start": "2021-05-17T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-19T00:00:00.000Z",
           "start": "2021-05-18T00:00:00.000Z",
           "tweet_count": 1
       },
       {
           "end": "2021-05-20T00:00:00.000Z",
           "start": "2021-05-19T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-21T00:00:00.000Z",
           "start": "2021-05-20T00:00:00.000Z",
           "tweet_count": 8
       },
       {
           "end": "2021-05-22T00:00:00.000Z",
           "start": "2021-05-21T00:00:00.000Z",
           "tweet_count": 1
       },
       {
           "end": "2021-05-23T00:00:00.000Z",
           "start": "2021-05-22T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-24T00:00:00.000Z",
           "start": "2021-05-23T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-25T00:00:00.000Z",
           "start": "2021-05-24T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-26T00:00:00.000Z",
           "start": "2021-05-25T00:00:00.000Z",
           "tweet_count": 1
       },
       {
           "end": "2021-05-27T00:00:00.000Z",
           "start": "2021-05-26T00:00:00.000Z",
           "tweet_count": 1
       },
       {
           "end": "2021-05-28T00:00:00.000Z",
           "start": "2021-05-27T00:00:00.000Z",
           "tweet_count": 1
       },
       {
           "end": "2021-05-29T00:00:00.000Z",
           "start": "2021-05-28T00:00:00.000Z",
           "tweet_count": 2
       },
       {
           "end": "2021-05-30T00:00:00.000Z",
           "start": "2021-05-29T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-05-31T00:00:00.000Z",
           "start": "2021-05-30T00:00:00.000Z",
           "tweet_count": 0
       },
       {
           "end": "2021-06-01T00:00:00.000Z",
           "start": "2021-05-31T00:00:00.000Z",
           "tweet_count": 0
       }
   ],
   "meta": {
       "total_tweet_count": 22
   }
}
ステップ6:結果をページングする レスポンス内の meta オブジェクトに next_token が含まれている場合、その値を next_token クエリパラメータに渡せます。
KeyValueDescription
next_token直前のリクエストの meta オブジェクトから取得した next_token をここに指定します。最新のリクエストで残りの結果が返ってこなかった場合、meta オブジェクトに next_token が含まれます。そのフィールドの値を取得し、次回のリクエストで next_token パラメータの値として指定し、他のリクエストパラメータはすべて同じに保ちます。
next_token に正しい値を設定したら、「Send」ボタンをクリックして次のページの結果を取得します。