Webhooksの設定

WhatsApp Businessのブログ

Webhooksをサブスクリプション登録すると、ビジネスが受け取るメッセージや顧客プロフィールの更新に関する通知を受け取ることができます。

エンドポイントを作成する

通知を受け取るには、事前に、通知を受け取るためのエンドポイントをサーバー上に作成する必要があります。

エンドポイントは、確認リクエストとイベント通知の2種類のHTTPSリクエストを処理できなければなりません。両方のリクエストでHTTPSが使われるため、サーバーで有効なTLSまたはSSL証明書が適切に構成され、インストールされている必要があります。自己署名の証明書はサポートされていません。

確認リクエストとイベント通知について詳しくはこちら

Webhooksの設定は、WhatsApp Businessアプリの電話番号に影響しません。電話番号をWhatsApp Businessプラットフォームに移行するのでない限り、その番号をWhatsApp Businessアプリで使うことができます。

Webhooksをサブスクリプション登録する

Webhooksをサブスクリプション登録するには、MetaアプリIDとアクセス許可を取得する必要があります。そのためには、Metaアプリダッシュボードに移動します。そこで次のことをします。

  1. Metaアプリダッシュボードで[ビジネス]タイプのアプリを作成します
  2. アプリダッシュボードでMetaアプリにWebhooks製品を追加します

    各Metaアプリに設定できるエンドポイントは、常に1つだけです。Webhook更新を複数のエンドポイントに送信する必要がある場合は、複数のMetaアプリが必要です。

ソリューションパートナーの場合は、次のことが必要になる場合があります。

  1. アプリダッシュボードでwhatsapp_business_messagingアクセス許可を追加する
  2. Metaアプリレビューに合格する – このステップには時間がかかりますが、レビュープロセス中もずっとテストは続行できます。

Webhooksを理解する

トリガーイベントが発生するたびに、WhatsApp Businessプラットフォームはイベントを認識し、事前に指定されたWebhook URLに通知を送信します。次の2種類の通知を受け取ることができます。

  • 受信したメッセージ: このアラートは、メッセージを受信したことを通知します。ドキュメント全体で「インバウンド通知」とも呼ばれています。
  • メッセージステータスと価格設定通知: このアラートは、メッセージのステータスが変化したこと(メッセージが読まれた場合や配信された場合など)を通知します。このドキュメント全体を通じて「アウトバウンド通知」とも呼ばれています。

すべてのWebhooksは、以下の一般的なフォーマットになっています。

{
  "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"
              },
              # specific Webhooks payload            
          },
          "field": "messages"
        }]
    }]
}

各フィールドに関する情報については、コンポーネントをご覧ください。

クラウドAPIでサポートされていないメッセージを受信した場合、不明メッセージWebhookを受け取ります。

ペイロードのサイズ

Webhooksペイロードは最大3MBまでです。

サンプルアプリエンドポイント

Webhooksテスト用のサンプルアプリエンドポイントを作成します。

Webhook配信の失敗

エンドポイントにWebhookリクエストが送信されサーバーから200以外のHTTPステータスコードで応答した場合、または別の理由でWebhookを配信できなった場合には、リクエストが成功するまで最大7日間、頻度を低下させつつ試行が続けられます。

再試行では、WhatsApp BusinessアカウントのWebhooks(とそれに該当するフィールド)をサブスクリプション登録したすべてのアプリが送信先となることに注意してください。そのため、Webhook通知が重複する可能性があります。

IPアドレス

ターミナルで次のコマンドを実行して、WebhookサーバーのIPアドレスを取得できます。

whois -h whois.radb.net — '-i origin AS32934' | grep ^route | awk '{print $2}' | sort

これらのIPアドレスは定期的に変更されるため、Metaサーバーを許可リストに登録している場合は、時々このリストを再生成し、それに応じて許可リストを更新することをおすすめします。

次のステップ

Webhooks通知で受け取ることのできる情報について、詳細をご確認ください