WhatsApp Business API消息添加反应失效问题求助
WhatsApp Cloud API添加消息反应成功返回但实际无显示的问题
调用WhatsApp Cloud API添加消息反应时,接口返回符合预期的成功响应,但目标消息上并未显示对应的表情反应。已确认message_id正确(同一ID用于标记消息已读功能正常),相关请求信息及代码如下:
请求信息
- 请求地址:
https://graph.facebook.com/v18.0/{fromNumber}/messages - 请求参数:
{ "messaging_product": "whatsapp", "to": {toNumber}, "type": "reaction", "reaction": { "message_id": {messageID}, "emoji": "💭" } }
- 响应内容:
{ "messaging_product": "whatsapp", "contacts": [ { "input": {toNumber}, "wa_id": {toNumber} } ], "messages": [ { "id": {responseWaId} } ] }
PHP实现代码
/** * Markeer bericht met reactie * * @param string $toNumber * @param string $message * @return int */ public function markMessageWithEmoji(string $messageId) { $url = "https://graph.facebook.com/v18.0/{$this->fromNumber}/messages"; $response = Http::withHeaders([ 'Authorization' => 'Bearer ' . $this->whatsappToken, 'Content-Type' => 'application/json', ])->post($url, [ 'messaging_product' => 'whatsapp', 'recipient_type' => 'individual', 'to' => $this->toNumber, 'type' => 'reaction', 'reaction' => [ 'message_id' => $messageId, 'emoji' => '💭', ], ]); return $response->status(); }
排查与解决建议
- 测试表情兼容性:替换当前使用的💭为WhatsApp常用表情(如👍),验证是否能正常显示,部分特殊表情可能存在客户端显示限制。
- 核对
to参数完整性:确保to参数为目标用户的完整WhatsApp ID(含国家码,无加号、空格等特殊字符),即使响应返回了wa_id,仍需确认该ID与目标消息的接收方完全匹配。 - 切换API版本测试:尝试使用相邻的稳定API版本(如v17.0或v19.0)发起请求,排查当前v18.0版本是否存在已知的反应消息投递BUG。
- 确认消息有效性:检查目标消息是否未被删除、处于活跃会话中,系统消息或过期消息可能无法添加反应。
- 检查Webhook回调日志:若配置了Webhook,查看是否存在反应消息投递失败的回调通知,接口返回成功不代表消息一定能被客户端接收。
- 修正代码参数不一致问题:方法注释声明接收
$toNumber和$message参数,但方法定义仅接收$messageId,需确认$this->toNumber是否被正确赋值为目标用户的有效ID,避免参数传递错误。
内容的提问来源于stack exchange,提问作者eki
相关产品推荐
相关产品推荐

