> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ycloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# messenger.message.updated

> 当已保存的 Messenger 普通出站消息快照可用（包括提交结果和匹配的回执）时触发。

使用 `messenger.message.updated` 在您的 Webhook 端点处理此事件。

## 触发条件

当已保存的 Messenger 普通出站消息快照可用（包括提交结果和匹配的回执）时触发。

在您[配置 Webhook 端点](https://docs.ycloud.com/zh/api-reference/guides/api-fundamentals/configure-webhooks.md)时订阅 `messenger.message.updated`。

此事件包含已保存普通出站消息的提交结果和匹配回执。通过消息 `id` 关联快照。未知的中间回执时间可省略。

## 语法

YCloud 会向您配置的 Webhook URL 发送 HTTP `POST` 请求。以下结构展示了一种负载变体。尖括号中的值为占位符；其类型列在 **Parameters** 下。可选字段和其他变体详见下文。

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "<ID>",
  "type": "messenger.message.updated",
  "apiVersion": "<API_VERSION>",
  "createTime": "<CREATE_TIME>",
  "messengerMessage": {
    "id": "<ID>",
    "metaMessageId": "<META_MESSAGE_ID>",
    "from": "<FROM>",
    "to": "<TO>",
    "type": "<TYPE>",
    "text": {
      "body": "<BODY>"
    },
    "status": "<STATUS>",
    "createTime": "<CREATE_TIME>",
    "updateTime": "<UPDATE_TIME>",
    "readTime": "<READ_TIME>"
  }
}
```

## 参数

在处理 JSON 请求体之前，请先验证 `YCloud-Signature` HTTP 请求头。请参见[签名验证](https://docs.ycloud.com/zh/api-reference/guides/api-fundamentals/configure-webhooks.md)。

### 事件外层封装

| 参数 | 类型 | 是否必填 | 说明 |
| - | - | - | - |
| `id` | string | 是 | 事件的唯一 ID。最小长度：`6`。最大长度：`128`。 |
| `type` | string | 是 | 固定为 `messenger.message.updated`。 |
| `apiVersion` | string | 是 | 用于呈现此事件的 API 版本。 |
| `createTime` | string (date-time) | 是 | 此事件的创建时间，格式采用 [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339)。例如：`2022-06-01T12:00:00.000Z`。 |

### 事件负载

| 参数 | 类型 | 是否必填 | 说明 |
| - | - | - | - |
| `messengerMessage` | object | 否 | 事件专有 `messengerMessage` 负载。 |

外层封装的四个常用字段是必填的。负载字段取决于事件变体。在每个对象表格中，当父对象存在时， **必填** 属性生效。可选字段可以省略；示例并不表示字段是必填的。

#### messengerMessage

| 参数 | 类型 | 是否必填 | 说明 |
| - | - | - | - |
| `id` | string | 是 | YCloud 出站 ID，为十进制字符串；切勿将其序列化为 JSON 数字。 |
| `metaMessageId` | string | 否 | 未确认 Meta ID 时省略。 |
| `from` | string | 是 | Facebook 主页 ID。 |
| `to` | string | 是 | 此主页的对端 PSID。 |
| `reactions` | object\[] | 否 | 检索出站消息时重构的有效互动回应（Reactions）。当不存在已保存的有效互动回应时（包括撤回后），返回 \[]。客户状态 Webhook 会省略此字段；收到互动回应不会改变消息的递送状态或 updateTime。 |
| `type` | string | 是 | 取值：`text`。 |
| `text` | object | 是 | 对象字段列在下方。 |
| `status` | string | 是 | 当前存储的事实关系：read > delivered > sent > 提交结果。Unknown 表示未确认或正在处理中，绝不表示明确的失败。缺少回执并不意味着失败，也不会虚构任何中间状态。取值：`unknown`、`accepted`、`rejected`、`sent`、`delivered`、`read`。 |
| `errorCode` | string | 否 | 本地记录的提交错误（如果存在）。已确认的拒绝可能是 MESSENGER\_MESSAGE\_REJECTED(#100:2018276)、MESSENGER\_MESSAGE\_REJECTED(#100)，或者在无法获取诊断信息时的旧版 MESSENGER\_MESSAGE\_REJECTED。MESSENGER\_MESSAGE\_RESULT\_UNKNOWN 表示提交结果未确认。绝不包含原始 Meta 错误主体或凭据。 |
| `createTime` | string (date-time) | 是 | 本地创建时间，采用毫秒精度的 UTC RFC 3339 格式。 |
| `updateTime` | string (date-time) | 是 | 本地更新时间，采用毫秒精度的 UTC RFC 3339 格式。 |
| `sendTime` | string (date-time) | 否 | 确认发送时间，采用毫秒精度的 UTC RFC 3339 格式；未知时省略。 |
| `deliverTime` | string (date-time) | 否 | 确认送达时间，采用毫秒精度的 UTC RFC 3339 格式；未知时省略。 |
| `readTime` | string (date-time) | 否 | 确认已读时间，采用毫秒精度的 UTC RFC 3339 格式；未知时省略。 |

> [accordion] messengerMessage.reactions\[]
>
> | 参数 | 类型 | 是否必需 | 说明 |
> | - | - | - | - |
> | `psid` | string | 是 | 做出回应的用户的 Page-scoped ID。 |
> | `reaction` | string | 否 | 提供商回应描述（如果可用）。客户端应兼容新值。 |
> | `emoji` | string | 否 | 回应表情符号（如果可用）。 |
> | `updateTime` | string (date-time) | 是 | 源交互时间，采用毫秒精度的 UTC RFC 3339 格式；独立于消息的 updateTime。 |

> [accordion] messengerMessage.text
>
> | 参数 | 类型 | 是否必需 | 说明 |
> | - | - | - | - |
> | `body` | string | 是 | 非空文本。前导和尾随空格会被保留，并在比对重复请求时包含在内。最小长度：`1`。 |

## 示例

以下 JSON 是传递给您的接收端的请求体。ID、电话号码和其他账户数值仅用于说明。

使用消息 ID 来关联快照；未知的中间接收时间会被省略。

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "evt_89abcdef0123456789abcdef",
  "type": "messenger.message.updated",
  "apiVersion": "v2",
  "createTime": "2026-10-20T02:00:03.000Z",
  "messengerMessage": {
    "id": "1308528868252065792",
    "metaMessageId": "m_EXAMPLE_OUT_001",
    "from": "422500000000000",
    "to": "100800000000000",
    "type": "text",
    "text": {
      "body": "How can I help you?"
    },
    "status": "read",
    "createTime": "2026-10-20T02:00:00.000Z",
    "updateTime": "2026-10-20T02:00:03.000Z",
    "readTime": "2026-10-20T02:00:03.000Z"
  }
}
```

在验证签名并持久接收该事件后，返回 `2xx` 响应。较耗时的任务请进行异步处理。

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
HTTP/1.1 200 OK
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.