Webhooks 设置

WhatsApp Business 博客

您可订阅 Webhooks,以便在公司收到消息以及客户个人主页更新时接收相关通知。

创建端点

在可以开始接收通知前,您需要在服务器上建立一个端点来接收通知。

您的端点必须能够处理两类 HTTPS 请求:验证请求和事件通知。这两类请求都使用 HTTPS,因此您必须为服务器正确配置和安装有效的 TLS 或 SSL 证书。不支持自签名证书。

进一步了解验证请求和事件通知

Webhooks 设置不会影响 WhatsApp Business 应用上的电话号码。只要您不将电话号码迁移至 WhatsApp Business 开放平台,就能继续在 WhatsApp Business 应用中使用该号码。

订阅 Webhooks

如要订阅 Webhooks,您需要获得 Meta 应用编号和权限。如要执行此操作,首先前往 Meta 应用面板。您需要在其中执行以下操作:

  1. 在 Meta 应用面板中创建业务类应用
  2. 在应用面板中,将“Webhooks”产品添加到您的 Meta 应用

    在任何情况下,您只能为每个 Meta 应用配置一个端点。如果您需要将 Webhooks 更新发送到多个端点,则需要多个 Meta 应用。

如果您是解决方案合作伙伴,则可能需要执行以下操作:

  1. 在应用面板中添加 whatsapp_business_messaging 权限
  2. 成功完成 Meta 应用审核 – 这个步骤需要一些时间,但是您可在整个审核流程期间继续测试。

了解 Webhooks

每当触发事件发生时,WhatsApp Business 开放平台都会查看事件,并向您之前指定的 Webhooks 网址发送通知。您会收到两类通知:

  • 收到消息:当您收到消息时,系统会发送此提醒通知您。在本文档中,这些消息也称为“入站通知”。
  • 消息状态和定价通知:当消息状态更改时(如消息已被读取或送达),系统会发送此提醒通知您。在本文档中,这些消息也称为“出站通知”。

所有 Webhooks 均采用以下通用格式:

{
  "object": "whatsapp_business_account",
  "entry": [{
      "id": "WHATSAPP_BUSINESS_ACCOUNT_ID",
      "changes": [{
          "value": {
              "messaging_product": "whatsapp",
              "metadata": {
                  "display_phone_number": "PHONE_NUMBER",
                  "phone_number_id": "PHONE_NUMBER_ID"
              },
              # specific Webhooks payload            
          },
          "field": "messages"
        }]
    }]
}

请参阅组件,了解每个字段的相关信息。

如果您收到云端 API 不支持的消息,则会收到未知消息 Webhooks

负载大小

Webhooks 负载大小上限为 3MB。

应用端点示例

创建应用端点示例,测试您的 Webhooks。

Webhooks 送达失败

如果我们向您的端点发送 Webhooks 请求,而您的服务器返回除 200 以外的 HTTP 状态代码,或者如果 Webhooks 由于其他原因而无法送达,我们将以较低的频率继续尝试发送请求,直到请求发送成功,重试操作最多持续 7 天。

请注意,系统会向已订阅 WhatsApp Business 商业帐号 Webhooks(及其相应字段)的所有应用重新尝试发送请求。这可能会导致产生重复的 Webhooks 通知。

IP 地址

您可以通过在自己的终端运行以下命令,获取我们 Webhooks 服务器的 IP 地址:

whois -h whois.radb.net — '-i origin AS32934' | grep ^route | awk '{print $2}' | sort

我们会定期更改这些 IP 地址,因此如果您将我们的服务器加入白名单,您可能需要不定期重新生成此命令并相应地更新您的白名单。