Skip to main content

什么是 WhatsApp 出站回显消息已创建

订阅 whatsapp.echo_message.created。 当 YCloud 为通过公共 REST API 接入的 Agent 记录出站回显消息时,您会收到此事件。从 whatsappMessage 读取标准消息格式的内容;请勿将此事件用于客户入站消息。 当前协议保持事件名称不变,同时将回显消息公开为标准 WhatsApp 消息。Agent、交接(handover)以及收件箱(Inbox)路由字段不属于此负载的一部分。

准备工作

  1. 通过 公共 REST API 接入 Agent。
  2. 在同一账户下将活跃的 Webhook 端点订阅到 whatsapp.echo_message.created。
  3. 针对原始请求体验证 YCloud-Signature,持久化接收每个事件,并对其进行幂等处理。
通过控制台创建的 Agent 不会发出此客户 Webhook。它们的收件箱同步属于单独的流程。
有关端点配置,请参见配置 Webhook。

工作原理

所有示例均使用占位符标识符。根据外层的 type 进行路由,并读取 whatsappMessage,而不是 whatsappMetaBusinessAgent、whatsappEchoMessage 或 data。 使用外层的 id 对重复投递进行去重。外层的 createTime 为 Webhook 事件时间;嵌套的消息时间字段为 RFC 3339 源时间。
  • 使用 id 或 wamid 关联后续状态事件。
  • 从 text.body 读取文本。对于媒体,检查 type 及相应的内容对象。媒体 ID 并非公开下载 URL。
  • 客户电话号码和 BSUID 彼此独立。当源回调同时提供两者时,事件会包含 to 以及 recipientUserId 或 parentRecipientUserId。缺失的身份信息会被省略,且不会相互推断。
  • 当源回调提供有效的电话号码时,from 为商业显示电话号码。它并非由 phoneNumberId 派生得出。
  • 回复上下文会规范化为标准消息协议。例如,源 context.id 会公开为 context.message_id。
  • Agent、交接、路由、定价和会话字段均不包含在内。
  • status 是处理回显消息时存储的状态;并不保证一定是 sent。
  • 客户入站消息使用 whatsapp.inbound_message.received。Business App 回显消息使用 whatsapp.smb.message.echoes。

请求

YCloud 会在发送到您配置的 Webhook URL 的 HTTP POST 请求中携带这些 JSON 体。

响应

持久化接收每个事件后返回 2xx 响应。耗时工作请异步处理。

出站文本回显

请求

存储来自 whatsappMessage.text.body 的文本。id 和 wamid 用于关联后续状态事件。

响应

说明

从 whatsappMessage.text.body 读取回显的文本。使用 id 或 wamid 关联后续状态事件。

出站图片回显

请求

消息内容因类型而异。请将媒体 ID 视为服务商引用标识,而非公开下载 URL。

响应

说明

使用 type 选择匹配的内容对象。将媒体 id 视为服务商引用标识。

相关示例