在WhatsApp Cloud API中发送元数据并获取上下文的技术问询
解决WhatsApp Cloud API回复消息时获取元数据ID的问题
核心说明
WhatsApp Cloud API不会将你发送消息时携带的metadata直接返回在context字段中,你需要通过消息ID关联本地存储的方式来获取对应的idUser和idBranch。
步骤1:发送带元数据的消息(完整请求格式)
确保你的请求格式完整,补充模板必要字段:
{ "messaging_product": "whatsapp", "to": "52" + recipient, "metadata": { "idUser": 60, "idBranch": 76 }, "type": "template", "template": { "name": "booking_confirmation_request", "language": { "code": "es_MX" } } }
发送成功后,保存WhatsApp API返回的message_id,并将其与idUser、idBranch关联存入你的业务数据库。
步骤2:通过Webhook接收回复并获取关联ID
当餐厅回复这条消息时,Webhook会推送包含context字段的消息对象,其中context.id就是你之前发送的那条消息的ID:
{ "object": "whatsapp_business_account", "entry": [ { "id": "YOUR_BUSINESS_ACCOUNT_ID", "changes": [ { "value": { "messaging_product": "whatsapp", "messages": [ { "from": "RESTAURANT_PHONE_NUMBER", "id": "REPLY_MESSAGE_ID", "context": { "id": "MESSAGE_ID_YOU_SENT_EARLIER" } } ] } } ] } ] }
提取context.id,查询你的数据库即可拿到对应的idUser和idBranch,进而向用户发送预订确认消息。
关键注意事项
metadata字段仅用于业务自定义标识,WhatsApp不会存储或在回复消息的context中回传该内容,仅会在发送状态通知中附带,但无法通过回复消息关联获取。- 本地维护消息ID与业务元数据的映射关系,是当前唯一可靠的关联方案。
内容的提问来源于stack exchange,提问作者Ransomware0
相关产品推荐
相关产品推荐

