Skip to main content
Account Activity API (AAA) は非推奨となります。今後のリアルタイムなユーザーアクティビティ配信については X Activity API (XAA) をご確認ください。
このガイドでは、Account Activity API のセットアップ、ユーザーサブスクリプションの管理、Webhook の検証、そして見逃したイベントを復旧するためのリプレイ機能の利用方法について解説します。

1. X App を作成する

承認済みの開発者アカウントを用いて、developer portal から X app を作成します。会社を代表してアプリを作成する場合は、企業の X アカウントを使用してください。
  • アプリページの permissions タブで “Read, Write, and Access direct messages” を有効化します。
  • “Keys and Access Tokens” タブで、アプリの Consumer Key (API Key)Consumer Token (API Secret)Bearer Token を控えておきます。
  • アプリの Access TokenAccess Token Secret を生成します。これらはユーザーアカウントをサブスクライブするために必要です。
  • X Sign-in やユーザーコンテキストに慣れていない場合は、アクセストークンの取得方法を確認してください。
  • developer portal の “Apps” ページからアプリの数値 ID を控えておきます。Account Activity API のアクセス申請時に必要になります。

2. Account Activity API のアクセス権を取得する

Account Activity API は Enterprise および Pay Per Use のティアで利用できます。アクセス申請は developer portal から行います。

3. Webhook を登録する

Account Activity イベントを受信するには、公開アクセス可能な HTTPS URL を持つ Webhook を登録する必要があります。Webhook を消費するアプリの開発、Webhook の登録、セキュリティ、Challenge-Response Checks (CRC) の取り扱いの詳細は、V2 Webhooks API ドキュメントを参照してください。
  • Webhook が JSON エンコードされたイベントペイロードを含む POST リクエストを処理できるように構成してください。
  • Webhook の登録レスポンスから webhook_id を取得します。これはサブスクリプションを管理するために必要です。

4. セットアップを検証する

アプリと Webhook が正しく構成されていることを検証するには:
  1. Webhook にユーザーアカウントをサブスクライブします (後述の サブスクリプションの追加 を参照)。
  2. アプリがサブスクライブしている X アカウントの 1 つが投稿した Post に「いいね」を付けます。
  3. Webhook URL への POST リクエストとして favorite_events ペイロードを受信するはずです。
サブスクリプションを追加してからイベントの配信が始まるまで、最大 10 秒程度かかる場合があります。

サブスクリプションの管理

有効な webhook_id を持つ Webhook を登録した後、ユーザーサブスクリプションを管理してアカウントのアクティビティを受信できるようになります。サブスクリプションの追加、閲覧、削除には以下のエンドポイントを使用します。

サブスクリプションの追加

エンドポイント: POST /2/account_activity/webhooks/:webhook_id/subscriptions/allAPI リファレンス 指定した Webhook 経由でイベントを受信するために、認証済みユーザーをサブスクライブします。 認証: OAuth 1.0a (サブスクライブされるユーザーを表す 3-legged OAuth フローが必要)。
成功 (200 OK):
失敗理由:

サブスクリプションの確認

エンドポイント: GET /2/account_activity/webhooks/:webhook_id/subscriptions/allAPI リファレンス 認証済みユーザーが指定した Webhook にサブスクライブされているかを確認します。 認証: OAuth 1.0a (3-legged OAuth フローが必要)。
成功 (200 OK):
失敗理由:

サブスクリプションの削除

エンドポイント: DELETE /2/account_activity/webhooks/:webhook_id/subscriptions/:user_id/allAPI リファレンス 指定したユーザー ID のサブスクリプションを無効化し、Webhook へのイベント配信を停止します。 認証: OAuth2 App Only Bearer Token。
成功 (200 OK):
失敗理由:

すべてのサブスクリプションの閲覧

エンドポイント: GET /2/account_activity/webhooks/:webhook_id/subscriptions/all/listAPI リファレンス 指定した Webhook に現在サブスクライブされているすべてのユーザー ID のリストを取得します。 認証: OAuth2 App Only Bearer Token。
成功 (200 OK):
失敗理由:

サブスクリプション数

エンドポイント: GET /2/account_activity/subscriptions/countAPI リファレンス 認証済みアプリケーションのアクティブなサブスクリプションの合計数と、プロビジョニングされた上限を返します。 認証: OAuth2 App Only Bearer Token。
成功 (200 OK):
DM 専用のサブスクリプションはサポートされなくなりました。subscriptions_count_direct_messages フィールドは常に "0" になります。

リプレイ

AAAv2 はリプレイ機能を提供しており、指定した時間範囲内の過去のイベントを取得して Webhook に再配信できます。ダウンタイムによって取り逃したイベントの復旧に便利です。 エンドポイント: POST /2/account_activity/replay/webhooks/:webhook_id/subscriptions/allAPI リファレンス 認証: OAuth2 App Only Bearer Token。 成功 (200 OK):
失敗理由:

ジョブ完了メッセージ

リプレイジョブが正常に完了すると、X は以下のジョブ完了イベントを配信します。このイベントを受信した時点でジョブの実行は完了しており、次のジョブを送信できます。
ジョブが正常に完了しなかった場合、X はリプレイジョブの再試行を促す以下のメッセージを返します。このイベントを受信した時点でジョブの実行は完了しており、次のジョブを送信できます。

重要な注意事項

  • 認証: ユーザーをサブスクライブする際は、そのユーザーアカウントの consumer key、consumer secret、access token、access token secret を使用してください。
  • ダイレクトメッセージ: 送受信されるすべてのダイレクトメッセージ (POST /2/dm_conversations/with/:participant_id/messages 経由で送信されるもの) は、DM アクティビティを把握できるよう Webhook を通じてアプリに配信されます。
  • イベントの重複:
    • サブスクライブされた 2 人のユーザーが同じ DM 会話にいる場合、Webhook は重複したイベント (ユーザーごとに 1 件) を受信します。for_user_id フィールドで区別してください。
    • 複数のアプリが同じ Webhook URL とユーザーを共有している場合、イベントは複数回 (アプリごとに 1 回) 送信されます。
    • アプリはイベント ID を使ってイベントを重複排除し、時折発生する重複に対応する必要があります。

サンプルアプリ


次のステップ

はじめに

アクティビティタイプ、データオブジェクト、ペイロード例

Webhooks API

Webhook の登録と管理

移行ガイド

レガシーの Enterprise から v2 へ移行する

Webhook クイックスタート

CRC のセットアップ、セキュリティ、Webhook の登録