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

Node.js开发WhatsApp按钮/列表消息机器人遇阻求助

WhatsApp按钮/列表消息发送问题排查与解决方案

一、whatsapp-web.js 发送成功但无消息的解决办法

问题大概率是Buttons类的封装存在版本兼容问题,或者底层消息格式未正确生成,可按以下步骤修复:

  1. 更新到最新版本
npm install whatsapp-web.js@latest
  1. 替换为原生消息格式发送
    放弃Buttons类,直接构造符合协议的消息对象,避免封装层的问题:
// 替换原Buttons相关代码
const buttonMessage = {
  text: "Choose an option:",
  buttons: [
    { body: "Option 1" },
    { body: "Option 2" },
    { body: "Option 3" }
  ],
  title: "Your Title Here",
  footer: "Your Footer Text Here"
};

try {
  await client.sendMessage(msg.from, buttonMessage);
  console.log('Buttons sent successfully!');
} catch (error) {
  console.error('Failed to send buttons:', error);
}
  1. 验证接收端兼容性
    确保接收方的WhatsApp客户端版本在v2.21.18.10以上,旧版本不支持按钮消息。

二、Venom "无副标题" 错误的解决办法

问题根源是参数顺序错误+按钮格式不符合要求,修复如下:

  1. 修正参数顺序与按钮格式
    Venom的sendButtons正确参数顺序为(to, text, buttons, subtitle, footer),且按钮需包含id和text字段:
async function tryOptions(client, message) {
  const from = message.from;
  // 修正按钮格式
  const buttons = [
    {
      id: "btn1",
      text: "Text of Button 1"
    }
  ];
  // 修正参数顺序
  await client.sendButtons(
    from,
    "Choose an option",
    buttons,
    "Description of the buttons- subtitle",
    "Footer text here"
  );
}
  1. 更新Venom到最新版本
npm install venom-bot@latest

三、其他可行的实现方案

  • Baileys:轻量级低依赖的WhatsApp协议库,直接实现Web端协议,支持所有官方消息类型,灵活性拉满,适合自定义需求多的场景
  • WppConnect:基于whatsapp-web.js的高阶封装,API更简洁,内置按钮、列表消息的快速发送方法,适合快速开发
  • WhatsApp Business API:官方商业级解决方案,稳定性最高,无需依赖Web版,但需要申请官方权限,适合企业级应用

内容的提问来源于stack exchange,提问作者Michal Iakobashvili

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 01:16:05