我正在嘗試使用 WhatsApp Trigger 和 Send Message 節點設定 WhatsApp AI 聊天機器人。我已成功設定 WhatsApp Business Account ID、Client ID、Client Secret 和 Access Token。但是,當我嘗試在 Meta Developer Console 中儲存 Webhook Callback URL(使用 POST/GET 的 Production 和 Test URL)時,Meta 拒絕驗證它,並說該 URL 未經驗證。由於 Webhook 未經驗證,傳入的訊息無法觸發我的 n8n 工作流程。我只能使用 Meta Business Suite 儀表板中的「Send Message」測試按鈕成功手動傳送訊息。
n8n 版本: 2.29.5
執行 n8n 的方式: n8n Cloud(14 天免費試用)
託管環境: n8n Cloud Official Hosting
迄今為止採取的步驟
-
在 WhatsApp 節點內設定所有 API 認證。
-
嘗試將 Production 和 Test Webhook URL 貼到 Meta 的設定中。
-
在 Meta 開發者面板中將測試電話號碼列入白名單。
如何才能讓 Meta 成功驗證我的 n8n Webhook Callback URL,以便傳入的訊息觸發我的工作流程?
在點擊驗證之前,如果你使用的是生產 URL,請先發佈工作流程,或使用測試 URL、讓它進行監聽,然後點擊驗證
無論哪種方式,你都需要一個回應節點在監聽後將令牌回傳給 Meta,所以第一次不會成功;你只會得到進入資料流的令牌,然後用這個令牌配置你的回應至 webhook 節點。
不要對永久的 Meta 設定使用測試 URL,它只在主動聆聽時有效。在您的工作流程發佈並啟用後,請使用生產 URL。
螢幕截圖顯示您正在使用生產 URL,但工作流程可能還未啟用,這幾乎肯定是問題所在。
Hi @Harsh_Deswal 歡迎!
WhatsApp 每個應用程式只允許一個 webhook,所以每次貼上測試 URL,然後貼上生產 URL 時,較新的 URL 會覆蓋先前的註冊。Meta 的驗證只會針對目前註冊且可以連接的單一 URL 進行驗證,所以在兩者之間切換會導致驗證一直失敗。只註冊一個 URL,驗證期間不要交替使用。
@Stanleyy 這個搞對了,測試重定向 URL 除非正在監聽,否則永遠無法解析。使用生產環境的那個。
並將你的工作流程切換為啟用
我多次使用相同的 Production Get Url,但一次又一次地遇到相同的驗證問題。也許這些截圖可以幫助你更好地指導我。
我明白了 @Harsh_Deswal
你不需要手動將 Callback URL 貼到 Meta 中並按下驗證,使用 WhatsApp Trigger 節點時,n8n 會代你註冊 webhook 並自動回應 Meta 的驗證握手。手動操作才是導致驗證失敗的原因。發送能夠運作但觸發不行的原因在於認證類型:「Send Message」使用 API 金鑰認證(存取令牌 + 商務帳戶 ID),而觸發需要 OAuth2 認證(Client ID 是你的應用程式 ID,Client Secret 是你的應用程式密鑰)才能執行驗證。打開 WhatsApp Trigger 節點,將其設定為使用你的應用程式 ID 和應用程式密鑰建立的 OAuth2 認證,讓 n8n 與 Meta 執行握手,而不是手動驗證。
我是初學者,Meta Registers 會接收我發送到測試號碼的 Hii 訊息,但未將其發送到 n8n,所以 n8n 無法回覆。
我認為 @Harsh_Deswal 測試號碼是這裡的問題,通常在你從你這邊打開訊息視窗之前,它不會將傳入的訊息推送到觸發器。先從你自己的私人號碼發送一條 WhatsApp 訊息到測試號碼,然後讓 n8n 回覆,Meta 就會開始將傳入的訊息轉發到你的工作流程。如果沙箱測試號碼上仍然沒有收到訊息,請新增並驗證你自己的商業電話號碼,臨時測試號碼在入站傳遞方面不太可靠。
參考以下內容:
我幾週前遇到過同樣的問題,所以我能理解你的挫折感。
實際發生的核心問題是:當你自己將回調URL貼到Meta並點擊驗證時,你是在手動進行握手。但n8n中的WhatsApp Trigger節點應該自動處理該驗證,它會註冊webhook並自動回應Meta的挑戰。所以手動驗證嘗試基本上是在與n8n後台已經在做的事情相衝突。
更大的問題是檢查你的憑證。「發送訊息」有效是因為它只需要API密鑰類型的憑證、存取令牌加上業務帳號ID。但Trigger節點需要從你的應用程式ID(這是你的客戶端ID)和應用程式密鑰(客戶端密鑰)建立的OAuth2憑證。如果Trigger節點仍在使用錯誤的憑證類型,那幾乎可以肯定是為什麼握手持續失敗,儘管發送訊息運作良好。
也值得再次檢查,每個應用程式一次只能註冊一個webhook URL。如果你在驗證時一直在切換測試和生產URL,最後貼上的URL會覆蓋之前的註冊,所以在它們之間來回切換會不斷重置狀態。選擇一個URL,確保工作流程已發佈且在使用生產URL時處於活動狀態,並在驗證時不要觸碰它。
一旦憑證類型修正且只註冊一個URL,請再次嘗試驗證步驟。這個組合通常就能解決問題。