WhatsApp の Webhook:メッセージをサーバーへ直接振り分ける
WhatsApp の Webhook は、指定した HTTPS エンドポイントです。Meta はそこへ、受信メッセージ、配信ステータス、品質変更、アカウント更新などのイベントを送信します。Coexistence の番号では、配信先を自社サーバーに設定できるため、会話がプロバイダーを経由することはありません。
- Meta はイベントを URL へ直接送信
- プロバイダーのプラットフォームではなく自社のエンドポイント
- WhatsApp Business Account ごとに 1 つの上書き設定
7 日間は料金なし。いつでもキャンセルできます。
統合全体の構成は、アカウントごとに 1 つの HTTPS 配信先です。
messages と smb_message_echoes は、配信先に送られるメッセージ経路のイベントです。
Meta が GET ハンドシェイクで送信し、エンドポイントがそのまま返す必要がある値です。
Meta は Webhook に実際に何を送信しますか?
イベントはカテゴリー別に送信され、その違いがアーキテクチャを決めます。
メッセージ経路には、顧客が送信した内容と、Coexistence の番号でチームが WhatsApp Business アプリから送信した内容のエコーが含まれます。該当するフィールドは messages と smb_message_echoes で、会話の内容を含むのはこの 2 つです。
運用経路には、それ以外のすべてが含まれます。接続状態が変わったときの account_update、品質やスループットが変化したときの phone_number_quality_update、account_alerts、account_review_update、business_capability_update、phone_number_name_update です。これらに会話の内容は含まれず、監視はこれらをもとに構成します。
メッセージ経路に入るプロバイダーは最初のグループを受信します。入らないプロバイダーは受信しません。
Meta はエンドポイントをどのように認証しますか?
Meta は何かを配信する前に GET リクエストを送信します。この認証に失敗すると、設定が完了しているように見えてもメッセージを受信できません。
Meta は hub.mode に subscribe、hub.verify_token、hub.challenge の値を設定して URL を呼び出します。エンドポイントは、その challenge を JSON で包まず、何も追加せず、生のレスポンス本文として返す必要があります。返さなければ Meta は配信を開始せず、どのダッシュボードにもそのことは表示されません。
エンドポイントは HTTPS である必要もあります。何も返さない 404 や、Meta を拒否する認証レイヤーの背後にあるエンドポイントは、最初のメッセージが届かなくなるまで、正常な設定と見分けがつきません。
配信先を自社サーバーにできますか?
できます。ここがプロバイダーによって異なる部分です。
Meta では、特定の WhatsApp Business Account の Webhook 配信先をアプリから上書きできます。EasyCoexistence では、その上書き先をお客様の URL に設定し、メッセージ経路のイベントを当社のコールバックからお客様の URL へ移します。ダッシュボードとアラートは運用イベントで構成されるため、運用イベントは当社で保持します。
これは、当社が公開するポリシーではなく、アーキテクチャ上の結果です。会話の内容は当社に配信されないため、当社側に保存される場所はありません。上書き設定のないアカウントは当社のデフォルトコールバックに戻り、ハンドラーがイベントを保存せずに破棄します。
番号を再接続すると、配信先はどうなりますか?
削除されます。ほとんど誰も想定していない失敗です。
配信先は電話番号のプロパティではありません。当社アプリが WhatsApp Business Account のサブスクリプションに設定する上書きです。Meta の 14 日間の非アクティブ規則などにより接続が削除されると、アプリがそのアカウントからアンインストールされ、上書き設定も削除されます。
再接続すると送信と監視は復元されますが、自社サーバーへの配信は復元されません。エラーも報告されないため、顧客から「誰も返信しない」と連絡が来て初めて気づくことになります。実際に、正常に再接続した番号が無音になったことがあるため、当社は再接続のたびに上書き設定を再適用します。
よくある間違い
- 認証 GET に JSON を返す。Meta が求めるのは生の hub.challenge の値だけです。
- 一時 URL やテスト URL を使う。生成したツールがリッスンを停止した後も、Meta はそこへ配信し続けます。
- 配信先が再接続後も残ると考える。配信先はアプリのサブスクリプションに属し、アプリとともにアンインストールされます。
- Meta のリクエストを拒否する認証の背後にエンドポイントを置く。
EasyCoexistence は Webhook の上書き先をお客様のエンドポイントに設定し、通話前に認証して、再接続後も自動で再適用します。接続済みの番号 1 件あたり月額 US$ 9 から、利用量に応じて US$ 2 まで、最初の 7 日間は無料です。
よくある質問
メッセージは EasyCoexistence を経由しますか?
いいえ。上書き設定により、メッセージ経路のイベントは Meta からお客様のエンドポイントへ直接送信されます。上書き設定のないアカウントのイベントは当社のコールバックに戻り、保存せずに破棄されます。
後から配信先を変更できますか?
できます。ダッシュボードまたは MCP コネクターから、いつでも変更できます。null を渡すと当社のデフォルトに戻ります。
Meta の配信時にサーバーが停止していたらどうなりますか?
Meta は一定期間再試行し、その後停止します。電話の WhatsApp Business アプリにはメッセージが届くため、統合が停止しても企業が受け取るメッセージは失われません。
複数の番号に 1 つの Webhook で対応できますか?
できます。すべての番号を同じエンドポイントに指定し、ペイロード内の受信先 phone number id で処理を分岐してください。
続きを読む
始める準備はできましたか?
WhatsApp Coexistence の設定は数分で完了し、数か月もかかりません。スマートフォン上のアプリも引き続き使えます。
無料トライアルを始める7 日間は料金なし。いつでもキャンセルできます。確認日