更新
POST https://api.pushwoosh.com/messaging/v2/update
将先前创建的、由其 message_code 标识的消息替换为新的定义。此替换是完全替换,而非修补:新的定义将完全按照发送的内容应用,且 message_code 不会改变。
仅当消息仍处于待处理状态时,才可进行更新——即消息已安排在未来发送,但尚未被提取以进行处理或投递。
要检查消息是否仍处于可更新状态,请参阅检查消息状态。
在 Authorization: Token <API_TOKEN> 标头中使用您的服务器 API 令牌进行身份验证。
| 字段 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
message_code | 字符串 | 是 | 要更新的消息的消息代码,由 Notify 在 result.message_code 中返回。 |
request | 对象 | 是 | 消息的完整新定义。与 Notify 请求正文的结构相同——一个 segment 或 transactional 对象。验证方式与 Notify 完全相同。 |
请求示例
Anchor link to重新安排一条 segment 消息并更改其内容:
curl -X POST https://api.pushwoosh.com/messaging/v2/update \ -H "Authorization: Token YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "message_code": "XXXX-XXXXXXXX-XXXXXXXX", "request": { "segment": { "application": "XXXXX-XXXXX", "platforms": ["IOS", "ANDROID"], "code": "active_users", "payload": { "content": { "localized_content": { "en": { "ios": { "body": "Updated message" }, "android": { "body": "Updated message" } } } } }, "schedule": { "at": "2026-05-02T12:00:00Z" }, "message_type": "MESSAGE_TYPE_MARKETING" } } }'成功后,返回 HTTP 200 以及更新后消息的结果。message_code 保持不变。
{ "result": { "message_code": "XXXX-XXXXXXXX-XXXXXXXX", "unknown_identifiers": [] }}message_code(字符串):与请求中传入的代码相同。unknown_identifiers(字符串数组):在新定义中发现的、未找到的标识符(如适用)(请参阅Notify)。
错误使用标准的 gRPC-Gateway 错误封套:{ "code": ..., "message": ..., "details": [...] }。
| HTTP 状态 | 条件 |
|---|---|
400 | 缺少 message_code。 |
400 | 新的 request 定义缺失或无效(其验证方式与 Notify 完全相同)。 |
400 | 消息不处于可更新状态(不再是 pending 状态)。 |
403 | 消息属于另一个账户。 |
404 | 给定的 message_code 不存在任何消息。 |
500 | 加载消息或应用更新时发生内部错误。请重试请求。 |
示例
更新一条不再存在的消息会返回 HTTP 404:
{ "code": 5, "message": "message not found", "details": []}检查消息状态
Anchor link to在更新之前,您可以验证消息是否仍处于可更新状态。除了在控制面板的消息表格中读取状态列(Campaigns → One-time messages)外,您还可以通过 messages:list 以编程方式查询状态:
- 在
filters.messages_codes数组中传入message_code(以及必需的filters.application)。 - 读取
items[]中匹配条目的status字段。