Webhooksをサブスクリプション登録すると、ビジネスが受け取るメッセージや顧客プロフィールの更新に関する通知を受け取ることができます。
通知を受け取るには、事前に、通知を受け取るためのエンドポイントをサーバー上に作成する必要があります。
エンドポイントは、確認リクエストとイベント通知の2種類のHTTPSリクエストを処理できなければなりません。両方のリクエストでHTTPSが使われるため、サーバーで有効なTLSまたはSSL証明書が適切に構成され、インストールされている必要があります。自己署名の証明書はサポートされていません。
Webhooksの設定は、WhatsApp Businessアプリの電話番号に影響しません。電話番号をWhatsApp Businessプラットフォームに移行するのでない限り、その番号をWhatsApp Businessアプリで使うことができます。
Webhooksをサブスクリプション登録するには、MetaアプリIDとアクセス許可を取得する必要があります。そのためには、Metaアプリダッシュボードに移動します。そこで次のことをします。
各Metaアプリに設定できるエンドポイントは、常に1つだけです。Webhook更新を複数のエンドポイントに送信する必要がある場合は、複数のMetaアプリが必要です。
ソリューションパートナーの場合は、次のことが必要になる場合があります。
whatsapp_business_messaging
アクセス許可を追加するトリガーイベントが発生するたびに、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までです。
エンドポイントにWebhookリクエストが送信されサーバーから200以外のHTTPステータスコードで応答した場合、または別の理由でWebhookを配信できなった場合には、リクエストが成功するまで最大7日間、頻度を低下させつつ試行が続けられます。
再試行では、WhatsApp BusinessアカウントのWebhooks(とそれに該当するフィールド)をサブスクリプション登録したすべてのアプリが送信先となることに注意してください。そのため、Webhook通知が重複する可能性があります。
ターミナルで次のコマンドを実行して、WebhookサーバーのIPアドレスを取得できます。
whois -h whois.radb.net — '-i origin AS32934' | grep ^route | awk '{print $2}' | sort
これらのIPアドレスは定期的に変更されるため、Metaサーバーを許可リストに登録している場合は、時々このリストを再生成し、それに応じて許可リストを更新することをおすすめします。
Webhooks通知で受け取ることのできる情報について、詳細をご確認ください。