easyCoexistence
登入開始免費試用
Meta Tech Provider

messages Webhook

messages 是承載客戶傳送至您號碼的所有內容的欄位,包括文字、媒體、回覆、反應及互動回應。對於路由的 Coexistence 號碼,訊息會由 Meta 直接送往您的端點,不會經過供應商。

messages

承載客戶傳入訊息的 Webhook 欄位。

wamid

用於為訊息 id 加上前綴,以便去重重試。

200

Meta 期望快速收到的狀態,須在任何處理前傳回。

負載包含甚麼

一次傳送可包含一則或多則訊息,每則都有寄件者、id 及類型。類型會決定其他哪些鍵存在。

  • 寄件者的電話號碼,以及他們所寫入的號碼的電話號碼 id。
  • wamid 訊息 id,去重功能以此為基礎。
  • unix 時間戳記。
  • 類型:text、image、audio、video、document、sticker、location、contacts、reaction、button 或 interactive。
  • 對於媒體類型,會提供用來取得媒體的媒體 id,而非媒體本身的位元組。

為何路由號碼上的訊息不會到達我們

因為 override 會將此欄位連同 smb_message_echoes,移至您指定的任何目的地。

Meta 讓應用程式可以覆寫 WhatsApp Business Account 傳送 Webhook 的位置。我們會將此覆寫設定為您的 URL,令訊息路徑完全離開我們的基礎設施。我們這邊不會有副本、佇列或保留資料,因為訊息根本不會送達。

未設定目的地時,這些事件會回退至我們的預設回呼,處理程序會丟棄事件而不保存。這就是儲存聲明與程式碼路徑的差異:對話內容沒有地方可以流向。

正確確認訊息

在開始工作前傳回 200,而不是完成後才傳回。

Meta 會將緩慢回應視為失敗並重試,因此內聯處理的處理程序可能會多次看見同一則訊息。請立即回應,將負載放入佇列或背景工作,讓工作在請求之外進行。

在無伺服器環境中,這並非可選項。函式傳回後仍繼續工作,可能在回應的瞬間被凍結,因此確認與處理必須真正分開。

去重

始終根據 wamid 去重,因為重試是正常情況,而非例外。

同一則訊息可能因與您一方錯誤無關的原因到達兩次,例如回應緩慢、網絡逾時,或部署在傳送途中生效。儲存已見過的 id 並略過重複項只需數行程式碼,卻決定客戶會獲回覆一次還是兩次。

對於 Coexistence 號碼,這點更加重要,因為 smb_message_echoes 會經由相同路徑到達。若處理程序將每個事件都視為新事件,就會在團隊成員已回覆的訊息上再次回覆。

常見錯誤

  • 在傳回 200 前先處理。Meta 會重試緩慢回應,令您處理同一則訊息兩次。
  • 略過去重。重試是設計的一部分,不是罕見情況。
  • 預期負載會包含媒體位元組。負載只會提供用來取得媒體的媒體 id。
使用 EasyCoexistence 完成這項設定

EasyCoexistence 會將此欄位由 Meta 直接路由至您的端點,只保留監察所需的操作事件,因此對話內容完全沒有路徑進入我們的儲存空間。

常見問題

EasyCoexistence 會看到我客戶的訊息嗎?

不會。覆寫會將此欄位送往您的端點。任何到達我們回退回呼的內容都會被丟棄,不會保存。

一次請求可以收到多則訊息嗎?

可以。一次傳送可包含多則訊息,因此處理程序應逐一處理,而不是只讀取第一則。

如何取得媒體?

負載會提供媒體 id。使用該號碼的存取權杖取得 URL,然後下載。

smb_message_echoes 是甚麼?

這是承載團隊透過 WhatsApp Business 應用程式傳送內容的配套欄位。它只會存在於 Coexistence 號碼。

繼續閱讀

準備開始嗎?

幾分鐘內設定 WhatsApp Coexistence,而非幾個月。應用程式在手機上仍可繼續運作。

開始免費試用

驗證日期

messages Webhook