標題:WhatsApp Trigger 錯誤:自架實例上出現「The WhatsApp App ID already has a webhook subscription」
正文:
大家好,
我正在透過 Docker 後面的 Cloudflare 隧道執行自架 n8n 實例。我試著測試/啟動 WhatsApp Trigger 節點,但我一直收到下列錯誤:
執行工作流程時出問題
WhatsApp App ID [MY_APP_ID] 已經有一個 webhook 訂閱。在執行觸發器之前請刪除它或使用另一個 App。由於 WhatsApp API 的限制,每個 App 只能有一個觸發器。
設定詳細資訊:
在 Docker 中執行的自架 n8n
透過 Cloudflare 隧道公開的公開 URL(WEBHOOK_URL 環境變數已正確設定)
使用 Meta Developer App 搭配 WhatsApp API 認證資訊
我在 n8n 中沒有任何其他使用相同 WhatsApp App ID 的活躍工作流程。
我應該如何在 Meta 端或 n8n 中適當地清除或重設 webhook 訂閱,以便觸發器節點能夠正確註冊?任何幫助或建議都將不勝感激!
訂閱存在於 Meta 的一方,不是在 n8n。所以沒有其他活動的工作流程並不意味著沒有訂閱,這就是為什麼在 n8n 中停用東西不會清除它。
檢查實際註冊的內容:
GET https://graph.facebook.com/v21.0/{app-id}/subscriptions?access_token={app-id}|{app-secret}
注意令牌格式,它是你的應用 ID 和應用密鑰由管道符號連接。這是應用存取令牌,它經常讓人出錯。
然後刪除它:
DELETE https://graph.facebook.com/v21.0/{app-id}/subscriptions?object=whatsapp_business_account&access_token={app-id}|{app-secret}
或在儀表板中進行:你的應用然後 WhatsApp 然後設定,在回調 URL 旁邊有一個「移除訂閱」按鈕。
一旦那個消失了,啟動工作流程,n8n 就會乾淨地註冊自己的訂閱。
至於它來自哪裡,通常的原因是在某個時刻點擊了執行工作流程。測試模式也會註冊訂閱,測試結束時不一定會被清除。之後,每次啟動嘗試都會針對你無法從 n8n 內部看到的訂閱達到每應用一個觸發器的限制。
值得知道的是:該限制是 Meta 的,不是 n8n 的,所以你不能在同一個應用上同時有一個測試和一個生產觸發器。一旦它被啟動,就不要使用「執行」,否則你會回到這裡。
順便說一下,你的 Cloudflare 隧道在這個問題上沒有參與,這個錯誤發生在任何東西嘗試到達你的實例之前。