You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 00:22:35