n8n的 WhatsApp webhook未接收消息(无错误,webhook已验证)

前端开发 2026-07-10

我正在尝试通过一个webhook工作流,将WhatsApp Cloud API与 n8n集成,但从WhatsApp发送消息时没有收到任何响应。

我已经完成的步骤:

  • 在n8n中创建了一个webhook
  • 在Meta Developer Console中添加了webhook URL
  • 成功完成webhook验证(GET请求通过)
  • 已订阅所需的事件(messages 等等)
  • n8n中的工作流处于激活状态
  • 使用ngrok将本地的n8n实例公开暴露

问题:

  • 当我从WhatsApp发送消息时:
  • n8n工作流未触发
  • webhook节点中未显示任何数据
  • n8n中未显示任何错误
  • 未向WhatsApp返回任何响应

额外细节:

  • 我不确定WhatsApp是否真的访问了webhook
  • 我可能使用了错误的webhook URL(测试版与生产版之分)
  • ngrok正在运行,但URL可能已更改

我尝试过的办法:

  • 重新检查webhook URL并验证令牌
  • 重新启动ngrok
  • 启用/停用工作流
  • 检查n8n执行日志(未发现执行)

问题是:

如何调试WhatsApp是否确实向我的n8n webhook发送请求?以及可能导致webhook在没有任何错误的情况下不触发的原因有哪些?

解决方案

根本原因几乎可以肯定是以下三种问题之一——下面是逐一调试的方法:

1. Ngrok URL变化了(最常见)

每次重新启动ngrok时,都会生成一个新的URL。WhatsApp Meta Console仍然注册着你之前的URL。

修复方法:

# Check your current ngrok URL
ngrok http 5678

# Then go to Meta Developer Console →
# WhatsApp → Configuration → Webhook URL
# Update it with the NEW ngrok URL
# Re-verify the webhook

2.针对n8n的 Webhook URL格式错误

你的n8n webhook URL必须严格遵循以下格式:

https://your-ngrok-url.ngrok-free.app/webhook/your-webhook-path

不是测试URL(/webhook-test/)—— 只有在你在n8n中手动点击「监听测试事件」时才会起作用。用于生产请使用 /webhook/

3.验证WhatsApp是否实际访问了你的Webhook

使用ngrok内置的检查工具来确认请求是否到达:

http://localhost:4040

在你发送WhatsApp消息时,在浏览器中打开这个链接。如果你在这里没有看到任何请求,问题在Meta那边(URL错误或缺少订阅)。如果你确实看到请求,但n8n没有触发,问题出在n8n。

快速清单:

  • 工作流设置为 Active(不仅是在编辑器中打开)
  • 使用 /webhook/ 路径,而不是 /webhook-test/
  • Webhooks 下订阅了 messages 字段,而不仅仅是应用权限
  • Meta Console中的ngrok URL与你当前的ngrok会话匹配
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章