如何通过Message ID从WhatsApp API获取模板解析后的消息?
通过WhatsApp API利用Message ID获取模板消息内容的解决方案
WhatsApp Business API(包括Cloud API和On-Premise部署版)目前没有提供直接通过Message ID查询单条消息内容的公开端点,这是官方的设计限制。针对你的需求,以下是两种可行的解决路径:
1. 依赖Webhook消息留存(通用方案,适用于所有API版本)
当你发送模板消息后,WhatsApp会通过已配置的Webhook推送这条消息的最终解析内容到你的服务端点。你需要在接收Webhook时,将Message ID与对应的消息内容绑定存储到自有数据库中,后续直接从数据库查询即可。
模板消息的Webhook Payload核心片段示例
{ "entry": [ { "changes": [ { "value": { "messages": [ { "id": "<你的Message ID>", "text": { "body": "您好,您的订单【12345】已发货,预计3天送达" // 模板解析后的最终用户可见内容 }, "template": { "name": "order_shipped", "language": { "code": "zh_CN" }, "components": [ { "type": "body", "parameters": [ { "type": "text", "text": "12345" } ] } ] } } ] } } ] } ] }
- 重点关注
text.body字段:这是模板替换参数后发送给用户的准确内容 template字段仅包含模板元数据(名称、参数等),不是最终展示文本
2. On-Premise API专属:批量消息检索过滤(仅适用于本地部署版)
如果你使用的是On-Premise部署的WhatsApp Business API,可以通过GET /v1/messages端点结合过滤参数,精准定位到目标Message ID对应的消息:
请求示例
GET /v1/messages?id=<目标Message ID>
注意事项
- 该端点仅支持检索最近30天内的消息
- 需要确保你的API密钥具备
messages:read权限 - 返回结果中同样会包含
text.body(最终内容)和template(模板元数据)字段
关键提醒
- 若你未提前留存Webhook数据,且目标消息已超过30天(On-Premise场景),则无法回溯获取该消息的内容
- Cloud API无批量消息检索能力,必须依赖Webhook留存机制实现后续查询
内容的提问来源于stack exchange,提问作者Omkar Patne
相关产品推荐
相关产品推荐

