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

求助:使用whatsapp-web.js向WhatsApp频道发消息失败的解决方案

问题描述

目前没有关于使用API向WhatsApp频道发送消息的相关文档,我尝试使用基于Puppeteer运行WhatsApp Web实例的whatsapp-web.js库,但无法向频道发送消息,不过向我自己的号码发送消息却完全正常。以下是我的代码:

const { Client } = require('whatsapp-web.js');
const client = new Client();
client.on('ready', () => {
    console.log('Client is ready!');

     client.sendMessage("12xxxxxxxxxxxxx@newsletter", "testtttttttttt");  //id hidden for security
      
});
client.initialize();

请问有什么解决方案或变通方法吗?

解决方案
  • 验证频道ID正确性
    确认12xxxxxxxxxxxxx@newsletter是有效的频道ID。可以通过WhatsApp Web打开目标频道,查看页面URL中的会话ID,或者调用client.getChats()方法遍历会话列表,找到对应频道的ID进行核对。

  • 直接通过Puppeteer操控DOM发送消息
    whatsapp-web.js底层基于Puppeteer,当库本身的API不支持频道消息发送时,可以直接操作页面DOM模拟人工发送:

    client.on('ready', async () => {
        console.log('Client is ready!');
        // 导航到目标频道页面
        await client.pupPage.goto(`https://web.whatsapp.com/chat/${encodeURIComponent("12xxxxxxxxxxxxx@newsletter")}`);
        // 等待消息输入框加载完成(选择器需根据实际页面结构调整)
        await client.pupPage.waitForSelector('div[contenteditable="true"][data-tab="10"]', { timeout: 10000 });
        // 输入消息内容
        await client.pupPage.type('div[contenteditable="true"][data-tab="10"]', "testtttttttttt");
        // 点击发送按钮(选择器可能随WhatsApp Web更新变化)
        await client.pupPage.click('span[data-icon="send"]');
    });
    

    注意:WhatsApp Web的页面元素选择器可能会更新,若代码失效,需重新检查页面元素的属性值。

  • 确认账号权限
    确保你的账号是该WhatsApp频道的管理员或拥有发送消息的权限,普通订阅者无法向频道发送消息。

  • 更新whatsapp-web.js版本
    检查并更新whatsapp-web.js到最新版本,新版本可能已添加对频道消息发送的支持。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 20:40:00