messages Webhook
messages は、顧客が番号に送るすべてを運ぶフィールドです。テキスト、メディア、返信、リアクション、インタラクティブな応答が含まれます。ルーティングされた Coexistence 番号では、Meta からエンドポイントへ直接届き、プロバイダーを経由しません。
顧客から届くメッセージを運ぶ Webhook フィールドです。
再試行を重複排除するために使うメッセージ ID の接頭辞です。
処理を始める前に Meta がすぐ返すことを求めるステータスです。
ペイロードに含まれる内容
1 回の配信に 1 件以上のメッセージが含まれ、それぞれに送信者、ID、タイプがあります。タイプによって、存在する他のキーが決まります。
- 送信者の電話番号と、送信先番号の phone_number_id。
- 重複排除の基準になる wamid メッセージ ID。
- Unix タイムスタンプ。
- text、image、audio、video、document、sticker、location、contacts、reaction、button、interactive のいずれかの type。
- メディアタイプでは、データ本体ではなく取得に使う media id。
ルーティングされた番号で当社に届かない理由
override により、このフィールドと smb_message_echoes が、指定した送信先へ移動するためです。
Meta では、WhatsApp Business Account の Webhook 配信先をアプリで上書きできます。当社ではその上書き先をユーザーの URL に設定するため、メッセージの経路は当社のインフラを完全に離れます。当社側に配信されないため、コピーもキューも保持もありません。
送信先が設定されていない場合、これらのイベントは当社のデフォルトコールバックにフォールバックし、ハンドラーが永続化せず破棄します。これは保存に関する主張とコードパスの違いです。会話内容が送られる場所はありません。
正しく応答する方法
処理の後ではなく、処理の前に 200 を返してください。
Meta は遅いレスポンスを失敗として扱い、再試行します。そのため、インラインで処理するハンドラーでは同じメッセージを複数回受け取ることがあります。すぐに応答し、ペイロードをキューまたはバックグラウンドタスクに入れて、リクエストの外で処理してください。
サーバーレスでは、これは任意ではありません。関数は応答後も処理を続けようとすると、その時点で停止される可能性があります。そのため、応答と処理は実際に分離する必要があります。
重複排除
常に wamid を基準にしてください。再試行は例外ではなく、通常の動作だからです。
同じメッセージが 2 回届くのは、ユーザー側のバグとは無関係な理由でも起こります。遅いレスポンス、ネットワークタイムアウト、配信途中のデプロイなどです。受信済み ID を保存して重複をスキップする処理は数行で書けます。顧客に 1 回だけ返信するか、2 回返信するかを分ける重要な処理です。
Coexistence 番号では、smb_message_echoes も同じ経路で届くため、さらに重要です。すべてのイベントを新規として扱うハンドラーは、担当者がすでに返信した内容に重ねて返信してしまいます。
よくある間違い
- 200 を返す前に処理する。Meta は遅いレスポンスを再試行するため、メッセージを 2 回処理します。
- 重複排除を省く。再試行は設計上の動作であり、例外ではありません。
- ペイロードにメディア本体が含まれると考える。取得に使う media id が含まれます。
EasyCoexistence はこのフィールドを Meta からエンドポイントへ直接ルーティングし、監視に必要な運用イベントだけを保持します。そのため、会話内容が当社のストレージへ届く経路はありません。
よくある質問
EasyCoexistence は顧客のメッセージを見ますか?
いいえ。このフィールドは上書き設定によりユーザーのエンドポイントへ配信されます。フォールバックコールバックに届いたものも、永続化せず破棄されます。
1 回のリクエストに複数のメッセージが届くことはありますか?
はい。1 回の配信に複数件含まれることがあるため、ハンドラーは最初の 1 件だけでなく、すべてを反復処理してください。
メディアを取得するにはどうすればよいですか?
ペイロードに media id が含まれます。番号のアクセストークンを使ってその ID で URL を取得し、ダウンロードしてください。
smb_message_echoes とは何ですか?
WhatsApp Business アプリからチームが送信した内容を運ぶ関連フィールドです。Coexistence 番号にのみ存在します。
続きを読む
始める準備はできましたか?
WhatsApp Coexistence の設定は数分で完了し、数か月もかかりません。スマートフォン上のアプリも引き続き使えます。
無料トライアルを始める確認日