Skip to main content
V2 Webhooks API を使用すると、開発者は webhook ベースの JSON メッセージを介して X アカウントからリアルタイムのイベント通知を受信できます。これらの API により、Webhook の登録と管理、イベントを処理するコンシューマーアプリケーションの開発、Challenge-Response Check (CRC) と署名ヘッダーによるセキュアな通信の確保が可能になります。

概要

リアルタイム配信

発生と同時にイベントを受信

プッシュベース

データをサーバーに直接送信 — ポーリング不要

セキュア

CRC 検証と署名検証

信頼性

再試行とリカバリのサポート

Webhook をサポートする製品

現在 Webhook 経由でイベント配信をサポートしている製品は次のとおりです:

Webhook の仕組み

  1. イベントが発生 — ユーザーが Post、DM の送信、フォローなど
  2. X が POST リクエストを送信 — JSON イベントペイロードを登録済み Webhook URL に送信
  3. イベントを処理 — サーバーがイベントデータを処理
  4. 200 OK で応答 — 受信確認のために 200 ステータスを返す

Webhook の要件


エンドポイント

すべてのエンドポイントには OAuth2 App Only Bearer Token 認証が必要です。

セキュリティ

X の Webhook ベース API は、Webhook サーバーのセキュリティを確認するための 2 つの方法を提供します:
  1. Challenge-Response Check (CRC) — X は定期的に Webhook URL に GET リクエストを送信します。エンドポイントを制御していることを証明するために HMAC-SHA256 ハッシュで応答します。CRC チェックは、初回登録時、毎時、および手動での再検証時に行われます。
  2. 署名検証 — X からの各 POST リクエストには x-twitter-webhooks-signature ヘッダーが含まれます。この署名を検証することで、着信イベントの送信元が X であることを確認できます。

完全な実装詳細を見る

ステップバイステップの CRC 設定、コード例、署名検証

Webhook の検証

CRC チェックは、次のケースで Webhook に送信されます:
  • 作成直後
  • 明示的な PUT リクエスト時 (PUT /2/webhooks/{id})
  • 30 分ごとに定期的に(ただし、Webhook が過去 24 時間以内に正常に検証されていない場合のみ)
Webhook は次の場合に 無効 としてマークされます:
  • CRC チェックへの応答が無効
    • 2XX ステータスコードを返すが response_token が正しくない
    • 3XX ステータスコードを返す
    • SSL 例外が発生
  • 一時的なエラーが持続し、28 時間を超えて正常に検証されない(一時的な問題に対する 4 時間の猶予期間を含む)
    • 次の応答は一時的なエラーとして扱われます:
      • 4XX ステータスコード
      • 5XX ステータスコード
      • リクエストのタイムアウト
      • チャンネル切断
GET /2/webhooks エンドポイント、または Developer Console のツールボックスを使用して、Webhook の有効/無効状態を確認できます。

はじめに

前提条件

クイックスタート

Webhook をエンドツーエンドで設定

Filtered Stream Webhooks

Webhook 経由でフィルタリングされた Post を受信

Account Activity API

Webhook 経由でアカウントイベントを受信

サンプルアプリ

動作するコード例