WhatsApp Business 开放平台专用 Webhooks

WhatsApp Business 博客

Webhooks 可帮助您接收特定对象变更的实时 HTTP 通知。例如,用户向您发送消息或消息模板的状态发生变更时,我们可以向您发送通知。因此,您无需查询我们的 API,便可以了解对象是否发生了变更,并可避免达到流量限制。

本文概述了一些 Webhooks,它们适用于 WhatsApp Business 管理 API、WhatsApp Business 开放平台云端 API 以及 WhatsApp Business 开放平台本地 API。

对象、字段与值

每个 API 都可以拥有多种对象类型,因此,无论何时配置 Webhooks,都必须先选择一种对象类型。鉴于不同对象的字段各不相同,您之后还需要订阅该对象类型的特定字段。当您订阅的任何对象字段值发生变更时,您会收到通知。

所发送通知的形式为 HTTP POST 请求,而且包含用于描述变更的 JSON 负载。

可用的 Webhooks

下表概述了您可以从 Webhooks 收到的信息。

API对象

云端 API

  • 客户执行某个操作,如回复企业消息
  • 客户更新电话号码
  • 企业发送消息、消息送达至客户,或客户阅读消息(包括定价信息)
  • 消息出现错误

本地 API

  • 客户执行某个操作,如回复企业消息
  • 客户更新电话号码
  • 企业发送消息、消息送达至客户,或客户阅读消息(包括定价信息)
  • 消息出现错误

WhatsApp Business 管理 API

  • 官方商业帐号状态和显示名状态发生变更
  • WhatsApp Business 商业帐号审查状态发生变更
  • WhatsApp Business 商业帐号信息已更新,包括有关政策违规的信息
  • WhatsApp Business 商业帐号的功能已发生变更,如每个电话号码的对话数量发生了变更
  • 某个消息模板已获批准、未通过或已停用
  • 某个电话号码的显示名已获批准或未通过
  • 某个电话号码的质量相关状态已发生变更

文本消息通知示例

用户向您发送文本消息时,系统向您发送的 Webhooks 通知将如以下示例所示。

云端 API

对于云端 API,对象始终是 whatsapp_business_account,但 field 将表示发送的信息类型。

{
  "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
        },
        "contacts": [{
          "profile": {
            "name": "NAME"
          },
          "wa_id": PHONE_NUMBER
        }],
        "messages": [{
          "from": PHONE_NUMBER,
          "id": "wamid.ID",
          "timestamp": TIMESTAMP,
          "text": {
            "body": "MESSAGE_BODY"
          },
          "type": "text"
        }]
      },
      "field": "messages"
    }]
  }]
}

本地 API

对于本地 API,由于您的客户端将发送 Webhooks 而非 Meta,所以对象将是 contactsmessageserrorsstatusespricing

{
  "contacts": [{
    "profile": {
      "name": "NAME"
    },
    "wa_id": "WHATSAPP_BUSINESS_ACCOUNT_ID"
  }],
  "messages":[{
    "from": "PHONE_NUMBER",
    "id": "wamid.ID",
    "timestamp": "TIMESTAMP",
    "text": {
      "body": "MESSAGE_BODY"
    },
    "type": "text"
  }]
} 

HTTPS 服务器

我们将使用 HTTPS 发送所有 Webhooks,因此您的服务器必须能够接收和处理 HTTPS 请求,并且必须安装有效的 TLS/SSL 证书。不支持自签名证书。

详细了解

了解更多有关特定 API 专用 Webhooks 的信息。

后续步骤

  • 入门指南:确定适合您企业的 API。
  • 显示名:设置 WhatsApp 消息中显示的商业名称。
  • 电话号码 — 将电话号码与 WhatsApp Business 商业帐号绑定
  • 定价:了解定价以及如何设置支付。