透過 Coexistence 將 Botpress 機械人連接到 WhatsApp
請使用 Botpress 的 WhatsApp 整合,並選擇 Manual Configuration。貼上已連接號碼的存取權杖和電話號碼 ID,自訂一個驗證權杖,App ID 和 Client Secret 則留空。然後把 Botpress 的 Webhook URL 和該驗證權杖設為號碼的 Webhook 目的地,Meta 就會把每則訊息送到機械人。
Botpress 的 Client Secret 欄位:留空時,會略過 Webhook 簽章驗證。
Botpress 指南所訂閱的 Webhook 欄位,包括訊息和訊息範本狀態更新。
客戶傳來訊息後會開啟客戶服務時段,在時段內可傳送任何服務訊息。
Botpress 的哪種設定可配合 Coexistence 號碼使用?
Manual Configuration。其他選項是透過 Botpress 自家的 Meta 應用程式連接號碼,等於重新為號碼進行另一次接入,而不是使用已連接的號碼。
在 WhatsApp 整合中,打開 Configuration 下拉選單,選擇 Manual Configuration。系統會要求填寫驗證權杖、存取權杖、預設機械人電話號碼 ID,以及可選的 App ID、Client Secret 和 WABA ID。
存取權杖、電話號碼 ID 和 WABA ID 都來自連接資料:控制台會顯示這些資料,get_api_credentials 則會把它們傳給助理。驗證權杖可自行選定任何字串。App ID 和 Client Secret 保持留空。Botpress 的指南把密鑰當成要填寫的欄位,但其整合定義將它標示為可選,並說明沒有它就會略過簽章驗證。這點很重要,因為 Meta 是以 Tech Provider 應用程式的密鑰為每次傳送簽章,而客戶並不持有該密鑰。
Botpress 的 Webhook 如何收到 Meta 的訊息?
透過號碼的 Webhook 目的地。Botpress 的指南要求您把它的 Webhook URL 和驗證權杖貼到 Meta 應用程式的 WhatsApp 設定中。這裏您沒有自己的 Meta 應用程式:Meta 會把號碼的事件送到連接所指定的任何目的地。因此,請複製 Botpress 為該整合顯示的 Webhook URL,連同相同的驗證權杖,在控制台或透過 set_webhook_destination 設為目的地。
Meta 會傳送一個驗證 GET 請求,Botpress 回應後,訊息便開始傳送。Botpress 儲存手動設定時,也會向 Graph 查詢該權杖由哪個應用程式簽發,以檢查權杖。因此無效或已撤銷的權杖會在儲存時失敗,而不是等到第一則訊息才出錯。
Botpress 的處理程式也會處理 smb_message_echoes,這是有人從 WhatsApp Business 應用程式回覆時 Meta 傳送的事件。所以從手機發出的回覆,機械人是看得到的。
| Required? | What to enter | |
|---|---|---|
| Access Token | Required | The connected number's token |
| Default Bot Phone Number ID | Required | The connected number's phone number id |
| Verify Token | Required | Any string, reused in the webhook destination |
| WABA ID | Optional | The connected number's WABA id |
| App ID and Client Secret | Optional | Leave both empty |
機械人需要知道 Coexistence 的哪些事?
就是可能已有真人在對話。WhatsApp Business 應用程式在該號碼上仍然運作,所以客戶可能在同一分鐘內既收到手機的回覆,也收到機械人的回覆。請在流程中決定收到回音事件時怎麼做:多數團隊會暫停機械人對該聯絡人的回覆一段時間,避免蓋過介入的同事。
第二點是時間。回覆來訊的機械人在 24 小時客戶服務時段內運作,這期間可使用自由格式訊息。若流程在一天後才傳送內容,例如跟進或提醒,就需要已核准的訊息範本,改用自由格式訊息會返回錯誤 131047。Botpress 的指南訂閱了訊息範本狀態欄位,正是為了這類主動訊息。
另外,Coexistence 號碼的吞吐量固定為每秒 20 則訊息,遠高於對話式機械人的發送量。
常見錯誤
- 把自己 Meta 應用程式的密鑰填入 Client Secret。簽章永遠對不上,Botpress 會以 401 回應每一次傳送。
- 選了 OAuth 或沙盒選項,而不是 Manual Configuration。那些選項是透過 Botpress 自家的應用程式連接號碼,而不是使用已連接的號碼。
- 忽略回音事件。如果沒有處理從手機發出回覆的規則,機械人會蓋過已介入的同事。
在 easycoexistence.com 連接號碼,把它的存取權杖和電話號碼 ID 貼到 Botpress 的 Manual Configuration,再把 Botpress 的 Webhook URL 設為目的地。每個號碼每月 US$ 9 起,隨號碼增加降至 US$ 1,首 3 天免費。
常見問題
略過簽章檢查安全嗎?
這會把保護轉移到 URL 上。Botpress 會為每個整合產生專屬的 Webhook URL,請保密。媒體檔案仍須用權杖向 Meta 擷取,偽造的事件無法做到這點。
同一個號碼可以同時供應 n8n 嗎?
一個號碼只有一個 Webhook 目的地。請把它指向一個系統,若有第二個系統需要事件,就從那裏轉發。
Botpress 需要我的 WABA ID 嗎?
其定義目前標示為可選,並說明未來的主要版本會變成必填,所以請從連接資料中填入。
訊息會經過 EasyCoexistence 嗎?
不會。Meta 直接傳送到 Botpress 的 Webhook URL,我們這邊不會儲存內容。
繼續閱讀
準備開始嗎?
幾分鐘內設定 WhatsApp Coexistence,而非幾個月。應用程式在手機上仍可繼續運作。
開始免費試用驗證日期