WhatsApp Businessプラットフォーム用のWebhooks

WhatsApp Businessのブログ

Webhooksを利用すると、特定のオブジェクトに加えられる変更に関するHTTP通知をリアルタイムで受け取ることができます。例えば、ユーザーからメッセージが届いたときや、メッセージテンプレートのステータスが変更されたときに通知を受け取ることができます。こうした通知により、実際に起きているかどうか曖昧なオブジェクトへの変更をAPIでクエリする必要がなくなり、レート制限に達することを防止できます。

このドキュメントでは、Webhooksの概要を紹介します。この内容は、WhatsApp Business管理API、WhatsApp BusinessプラットフォームクラウドAPI、WhatsApp BusinessプラットフォームオンプレミスAPIに適用されます。

オブジェクト、フィールド、値

APIには複数のオブジェクトタイプがあります。そのため、Webhookを構成する際には必ず、最初にオブジェクトタイプを選択します。オブジェクトごとに使えるフィールドが異なるので、次にそのオブジェクトタイプの特定のフィールドをサブスクリプション登録します。サブスクリプション登録しているいずれかのオブジェクトフィールドで値に変更が加えられた場合は、必ず通知が届きます。

通知はHTTP POSTリクエストとして届き、その中に変更について説明しているJSONペイロードが含まれています。

利用可能なWebhooks

次の表では、Webhooksから受け取ることができる情報を概説しています。

APIオブジェクト

クラウドAPI

  • カスタマーがビジネスメッセージに返信するなどのアクションを実行した
  • カスタマーが電話番号を更新した
  • メッセージがビジネスによって送信された、カスタマーに配信された、カスタマーによって読まれた(価格情報を含む)
  • メッセージでエラーが発生した

オンプレミスAPI

  • カスタマーがビジネスメッセージに返信するなどのアクションを実行した
  • カスタマーが電話番号を更新した
  • メッセージがビジネスによって送信された、カスタマーに配信された、カスタマーによって読まれた(価格情報を含む)
  • メッセージでエラーが発生した

WhatsApp Business管理API

  • 公式ビジネスアカウントステータスと表示名ステータスの変更
  • WhatsApp Businessアカウントの審査のステータスが変更された
  • WhatsApp Businessアカウントの情報が更新された(ポリシー違反に関する情報も含む)
  • WhatsApp Businessアカウントの機能が変更された(電話番号当たりの会話数の変更など)
  • メッセージテンプレートが承認、却下、無効化された
  • 電話番号に関連付けられた表示名が承認または却下された
  • 電話番号の品質関連のステータスが変更された

テキストメッセージ通知の例

以下は、ユーザーからテキストメッセージが届いたときに送られるWebhooks通知を表す例です。

クラウドAPI

クラウドAPIでは、オブジェクトは常にwhatsapp_business_accountになりますが、fieldは送信されている情報のタイプを表すものになります。

{
  "object": "whatsapp_business_account",
  "entry": [{
    "id": "WHATSAPP_BUSINESS_ACCOUNT_ID",
    "changes": [{
      "value": {
        "messaging_product": "whatsapp",
        "metadata": {
          "display_phone_number": PHONE_NUMBER,
          "phone_number_id": PHONE_NUMBER_ID
        },
        "contacts": [{
          "profile": {
            "name": "NAME"
          },
          "wa_id": PHONE_NUMBER
        }],
        "messages": [{
          "from": PHONE_NUMBER,
          "id": "wamid.ID",
          "timestamp": TIMESTAMP,
          "text": {
            "body": "MESSAGE_BODY"
          },
          "type": "text"
        }]
      },
      "field": "messages"
    }]
  }]
}

オンプレミスAPI

オンプレミスAPIでは、MetaではなくクライアントがWebhookを送信しているので、オブジェクトはcontactsmessageserrors、またはstatusespricingになります。

{
  "contacts": [{
    "profile": {
      "name": "NAME"
    },
    "wa_id": "WHATSAPP_BUSINESS_ACCOUNT_ID"
  }],
  "messages":[{
    "from": "PHONE_NUMBER",
    "id": "wamid.ID",
    "timestamp": "TIMESTAMP",
    "text": {
      "body": "MESSAGE_BODY"
    },
    "type": "text"
  }]
} 

HTTPSサーバー

すべてのWebhooksはHTTPSを使用して送信されるので、ご使用のサーバーはHTTPSリクエストを受信して処理できなければなりません。また、有効なTLS/SSL証明書もインストールされている必要があります。自己署名証明書はサポートされていません。

詳細情報

特定のAPI用のWebhooksの詳細については、以下をご覧ください。

次のステップ

  • スタートガイド - ビジネスに適したAPIを決定します。
  • 表示名 - WhatsAppメッセージに表示される事業者名を設定します。
  • 電話番号 - 電話番号をWhatsApp Businessアカウントに関連付けます。
  • 価格設定 - 価格設定と支払いの設定方法について理解します。