Webhooks 可帮助您接收特定对象变更的实时 HTTP 通知。例如,用户向您发送消息或消息模板的状态发生变更时,我们可以向您发送通知。因此,您无需查询我们的 API,便可以了解对象是否发生了变更,并可避免达到流量限制。
本文概述了一些 Webhooks,它们适用于 WhatsApp Business 管理 API、WhatsApp Business 开放平台云端 API 以及 WhatsApp Business 开放平台本地 API。
每个 API 都可以拥有多种对象类型,因此,无论何时配置 Webhooks,都必须先选择一种对象类型。鉴于不同对象的字段各不相同,您之后还需要订阅该对象类型的特定字段。当您订阅的任何对象字段值发生变更时,您会收到通知。
所发送通知的形式为 HTTP POST 请求,而且包含用于描述变更的 JSON 负载。
下表概述了您可以从 Webhooks 收到的信息。
API | 对象 |
---|---|
云端 API |
|
本地 API |
|
WhatsApp Business 管理 API |
|
用户向您发送文本消息时,系统向您发送的 Webhooks 通知将如以下示例所示。
对于云端 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,由于您的客户端将发送 Webhooks 而非 Meta,所以对象将是 contacts
和 messages
、errors
或 statuses
和 pricing
。
{ "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 发送所有 Webhooks,因此您的服务器必须能够接收和处理 HTTPS 请求,并且必须安装有效的 TLS/SSL 证书。不支持自签名证书。
了解更多有关特定 API 专用 Webhooks 的信息。