员工直接发WhatsApp消息无法通过WhatsApp Business API获取的解决方案求助
解决方案:WhatsApp Business API同步员工直接发送消息至内部聊天系统
问题背景
客户有3部分布在不同楼宇的手机,需要统一查看各设备上的WhatsApp对话。基于官方WhatsApp Business API实现消息收发后,遇到核心问题:员工直接通过手机WhatsApp发送消息时,webhook端点仅收到消息状态(如read)的响应,完全不包含消息内容,返回的JSON示例如下:
{ "_id": { "$oid": "65d6098e02eea5099ba46d00" }, "object": "whatsapp_business_account", "entry": [ { "id": "178770005328586", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "15551337772", "phone_number_id": "209170728947400" }, "statuses": [ { "id": "wamid.HBgNNTUxOTk5OTQ1OTE2NRUCABEYEjBDOUFEQjZERDIyRTY5MUU3QQA=", "status": "read", "timestamp": "1708525966", "recipient_id": "5519999459165" } ] }, "field": "messages" } ] } ] }
尝试通过消息ID(wamid)调用GET接口获取内容,但WhatsApp API不支持该操作,需要找到无需开发复刻APP的同步方案。
可行解决方案
1. 调整Business API的Webhook订阅配置,捕获 outgoing 消息
当前webhook大概率只订阅了incoming消息和statuses事件,导致员工发送的 outgoing 消息未被推送完整内容。
- 操作步骤:
- 进入Meta Business Manager的WhatsApp配置页面
- 找到Webhook订阅设置,确保
messages字段勾选了所有事件类型(包括outgoing) - 保存配置后,当员工通过绑定的Business账号发送消息时,webhook会收到包含完整内容的payload,示例如下:
{ "object": "whatsapp_business_account", "entry": [ { "id": "178770005328586", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "15551337772", "phone_number_id": "209170728947400" }, "messages": [ { "from": "15551337772", "id": "wamid.HBgNNTUxOTk5OTQ1OTE2NRUCABEYEjBDOUFEQjZERDIyRTY5MUU3QQA=", "timestamp": "1708525966", "text": { "body": "员工发送的消息内容" }, "type": "text" } ] }, "field": "messages" } ] } ] } - 注意:必须确保员工手机使用的是WhatsApp Business App,且已完成与对应Business Account的关联绑定,否则无法捕获outgoing消息。
2. 部署设备端自动化工具捕获消息
如果无法切换到WhatsApp Business App,可在员工手机上部署轻量自动化脚本/应用,直接捕获WhatsApp发送的消息:
- 实现思路:
- 基于Android的Accessibility Service或iOS的Shortcuts/自动化框架,监控WhatsApp的消息发送动作
- 提取消息的发送人、接收人、内容、时间戳等核心数据
- 调用内部系统的API将数据写入数据库,同步到聊天系统
- 合规提醒:需提前告知员工并获得授权,符合当地隐私法规要求。
3. 关联设备到Business API的Cloud Instance(仅适用于Cloud API)
如果使用的是WhatsApp Cloud API,可将员工的手机作为关联设备绑定到Cloud Instance,这样所有通过该设备发送的消息都会被API捕获并推送到webhook。
- 操作步骤:
- 在Meta Business Manager中创建Cloud Instance
- 按照指引将员工的WhatsApp手机绑定为关联设备
- 配置webhook订阅
messages事件,即可接收所有设备发送的消息内容
内容的提问来源于stack exchange,提问作者Guilherme Silva
相关产品推荐
相关产品推荐

