用 Dify 应用回复 WhatsApp 消息
将号码的 Webhook 指向一个小型接收端,例如 n8n 工作流或您自己代码中的一个路由,由它把每条消息传给 Dify 的 Send Chat Message API,再通过 Cloud API 把答复发回。在 Dify 内,可以把 EasyCoexistence MCP 服务器添加为工具,让智能体直接操作该号码。
Dify 的 Webhook Trigger 会把非 JSON 的响应正文包装成 JSON,因此无法返回 Meta 的原始验证值。
Dify 的 Service API 调用:向聊天应用发送一条用户消息并返回其回复。
Dify 的 MCP 工具通过动态客户端注册获取 OAuth 凭据,该功能默认开启。
Meta 能直接把 WhatsApp 消息发给 Dify 吗?
无法完成握手,所以不行。Meta 在投递任何内容之前,会先向目标地址发送 GET 请求,并期望响应正文原样返回 hub.challenge 的值。Dify 的 Webhook Trigger 每个触发器只接受一种 HTTP 方法,其文档说明非 JSON 的响应正文会被自动转换为 JSON,于是 OK 会变成一个消息对象返回。验证值永远无法原样回显,Meta 也就不会开始投递。
因此前面需要放一个小型接收端。n8n 的 Webhook 节点、Python 或 Node 中的一个路由,或者一个无服务器函数,负责应答 GET、接收 POST,并把文本交给 Dify。Webhook URL 中那段随机长密钥也在这里校验,因为 X-Hub-Signature-256 请求头是用 Tech Provider 的应用密钥签名的,客户无法自行验证。
接收端如何与 Dify 应用通信?
只需调用一次 Dify 的 Service API:POST /chat-messages,并使用该应用的 API 密钥进行认证。请求体包含 query(客户的文本)和 user(由您自定义的标识符)。请把发送者的 WhatsApp 号码用作 user,并保存 Dify 返回的 conversation_id,这样同一个人的下一条消息就会延续同一段对话。
response_mode 很关键。blocking 会在答案生成完毕后才返回,Dify 的文档提醒,在 Dify Cloud 上,较长的生成可能被边缘代理截断。Agent 应用只支持 streaming,向其发送 blocking 请求会返回 400 错误。更稳妥的做法是由接收端读取数据流,并在结束时只发送一条 WhatsApp 消息。
随后,答复会作为 Cloud API 文本消息发到同一号码。在客户消息开启的 24 小时窗口内发送,不收费。
MCP 服务器在 Dify 内能带来什么?
让 Dify 智能体无需您逐个接线,就能直接操作该号码。Dify 通过 HTTP 连接 MCP 服务器,并默认通过 OAuth 动态客户端注册向服务器登记,而 EasyCoexistence MCP 服务器正支持这一方式。在“工具”下添加它并登录一次,智能体就能使用这些工具:列出号码、检查号码的连接状态、发送消息、发送已批准的模板、读取模板状态。
主动联系正适合放在这里:次日跟进的 Dify 工作流必须使用 send_template,因为窗口之外发送自由文本会返回错误 131047,工具说明中也已向模型写明这一点。
MCP 做不到的是在客户来信时唤醒 Dify。该协议是请求与响应模式,所以收到的消息仍然要经由 Webhook 和前面的接收端到达。
常见错误
- 把 Dify Webhook Trigger 的 URL 用作 Webhook 目标地址。验证值会被包装成 JSON 返回,Meta 永远无法验证该端点。
- 向 Dify 的 Agent 应用发送 blocking 请求。Agent 应用只支持 streaming,调用会返回 400 错误。
- 每条消息都使用新的 user 值。Dify 按 user 划分对话,因此每条消息都会开启一段没有记忆的新对话。
在 easycoexistence.com 连接号码,把 Webhook 目标地址指向您的接收端,再把 MCP 服务器添加到 Dify,供智能体执行操作。每个号码每月 US$ 9 起,随号码增加降至 US$ 1,前 3 天免费。
常见问题
Dify 有 WhatsApp 渠道吗?
其文档中没有。Dify 应用可通过 Service API 访问,因此 WhatsApp 需要借助调用该 API 的接收端来连接。
可以用 n8n 作为接收端吗?
可以。Webhook 节点负责接收,一个 HTTP Request 节点调用 Dify,另一个 HTTP Request 节点通过 Cloud API 发送答复。
团队仍然可以用手机回复吗?
可以。Coexistence 让 WhatsApp Business 应用继续在该号码上使用,从手机发出的回复会作为 echo 事件到达接收端。
EasyCoexistence 能看到对话内容吗?
不能。Meta 直接投递到您的接收端,我们不会存储消息内容。MCP 服务器只读取账户和号码的状态。
继续阅读
准备开始了吗?
几分钟即可设置 WhatsApp Coexistence,而不是几个月。应用会继续在手机上运行。
开始免费试用验证时间