easyCoexistence
登录开始免费试用
Meta Tech Provider

WhatsApp Webhook:将消息直接路由到您的服务器

WhatsApp Webhook 是您指定的 HTTPS 端点,Meta 会向它发布事件:收到的消息、送达状态、质量变化和账户更新。在 Coexistence 号码上,目标可以设为您自己的服务器,因此对话完全不会经过任何服务商。

  • Meta 直接向您的 URL 发布事件
  • 使用您的端点,而不是服务商的平台
  • 每个 WhatsApp Business 账户只能设置一个覆盖项
开始免费试用

7 天内不收取任何费用。随时取消。

不储存消息Business 应用 + Cloud API为 Claude 和 ChatGPT 提供 MCP2 分钟即可开始使用
1 URL

整个集成的定义:每个账户对应一个 HTTPS 目标。

2 fields

messages 和 smb_message_echoes,即路由给您的消息路径事件。

hub.challenge

Meta 在 GET 握手中发送的值,您的端点必须原样返回。

Meta 实际向 Webhook 发送什么?

事件分为不同类别,而类别之间的区别会决定您的架构。

消息路径承载客户发送的内容;在 Coexistence 号码上,也会包含团队通过 WhatsApp Business 应用发送内容的回显。这些字段是 messages 和 smb_message_echoes,也是包含对话内容的字段。

运营路径承载其他所有内容:连接状态变化时的 account_update、质量或吞吐量变化时的 phone_number_quality_update、account_alerts、account_review_update、business_capability_update 和 phone_number_name_update。这些事件不含对话内容,也是监控的基础。

把自己放在消息路径中的服务商会收到第一组事件。不在消息路径中的服务商则不会收到。

Meta 如何验证端点?

Meta 会先发送 GET 请求,验证失败是设置看似完成却始终收不到消息的最常见原因。

Meta 会调用您的 URL,并设置 hub.mode 为 subscribe,发送您的 hub.verify_token 以及 hub.challenge 值。您的端点必须将该 challenge 作为原始响应正文返回,不能包装在 JSON 中,也不能添加任何内容。如果没有返回,Meta 就不会开始发送事件,任何控制台都不会提示原因。

端点还必须使用 HTTPS。返回静默 404 的端点,或位于会拒绝 Meta 的身份验证层之后的端点,在第一条消息迟迟未到之前,看起来都与正常设置完全一样。

目标可以指向您自己的服务器吗?

可以,而这正是不同服务商之间的区别。

Meta 允许应用覆盖某个 WhatsApp Business Account 接收 Webhook 的位置。我们会将该覆盖项设为您的 URL,把消息路径事件从我们的 callback 移到您的端点。运营事件仍由我们保留,因为控制台和警报都依赖这些事件。

结果是架构上的变化,而不是我们发布的一项政策。对话内容从未发送给我们,因此我们这边没有地方可以存储这些内容。未设置覆盖项的账户会回退到我们的默认 callback,处理程序会丢弃这些事件而不保存。

号码重新连接时,目标会怎样?

目标会被移除,这是几乎没人会提前规划的故障。

目标不是电话号码的属性,而是我们应用对 WhatsApp Business Account 的订阅所设置的覆盖项。当连接被移除时,无论是因为 Meta 的 14 天不活跃规则还是其他原因,应用都会从该账户卸载,覆盖项也会随之消失。

重新连接会恢复发送和监控,但不会恢复向您服务器的发送,也不会报告错误。因此,第一个迹象可能是客户说没有人回复。我们会在每次重新连接时重新应用覆盖项,因为确实有一个号码顺利重新连接后变得完全安静。

常见错误

  • 在验证 GET 中返回 JSON。Meta 要求只返回原始 hub.challenge 值,不能有其他内容。
  • 使用临时或测试 URL。生成该 URL 的工具停止监听后,Meta 仍会继续向它发送事件。
  • 假设目标会在重新连接后保留。目标属于应用订阅,应用卸载时它也会被移除。
  • 将端点置于会拒绝 Meta 请求的身份验证之后。
使用 EasyCoexistence 完成这些操作

EasyCoexistence 将 Webhook 覆盖项设为您的端点,在调用前验证端点,并在任何重新连接后自动重新应用。从每个已连接号码每月 US$ 9 起,量大时降至 US$ 2,首 7 天免费。

常见问题

我的消息会经过 EasyCoexistence 吗?

不会。覆盖项会将消息路径事件从 Meta 直接发送到您的端点。未设置覆盖项的账户会回退到我们的 callback,事件会被丢弃而不保存。

之后可以更改目标吗?

可以,随时都能从控制台或通过 MCP connector 更改。传入 null 会将目标重置为我们的默认目标。

Meta 发送事件时,如果我的服务器宕机会怎样?

Meta 会重试一段时间,然后停止。消息仍会到达手机上的 WhatsApp Business 应用,因此即使集成中断,业务也不会丢失消息。

多个号码共用一个 Webhook 可以吗?

可以。将每个号码都指向同一个端点,再根据负载中的接收 phone number id 分支处理。

继续阅读

准备开始了吗?

几分钟即可设置 WhatsApp Coexistence,而不是几个月。应用会继续在手机上运行。

开始免费试用7 天内不收取任何费用。随时取消。

验证时间

WhatsApp Webhook 说明