如何使用whatsapp-web.js给WhatsApp群组发送消息?
用whatsapp-web.js向WhatsApp群组发送消息的修改方案
原代码是给个人号码发消息,改成给群组发的核心区别在于群组的Chat ID格式是[群组ID]@g.us,而个人账号的Chat ID是[号码去掉+]@c.us。下面给你几种实用的实现方式:
方法1:直接用已知的群组ID发送
如果你已经拿到群组ID(可以从WhatsApp网页版的聊天URL里提取,比如https://web.whatsapp.com/chat/[群组ID]),直接替换Chat ID即可:
client.on('ready', () => { console.log('Client is ready!'); // 群组消息内容 const text = "Hey everyone!"; // 群组Chat ID,格式为 [群组ID]@g.us const groupChatId = "123456789012345678@g.us"; // 发送消息 client.sendMessage(groupChatId, text); });
方法2:通过群组名称搜索并发送
如果不知道群组ID,可以通过群组名称匹配获取Chat ID,建议用独特的群组名避免重名匹配错误:
client.on('ready', async () => { console.log('Client is ready!'); const groupName = "我的好友群"; const text = "各位,这是一条测试消息!"; // 获取所有聊天会话 const chats = await client.getChats(); // 筛选出目标群组 const groupChat = chats.find(chat => chat.isGroup && chat.name === groupName); if (groupChat) { // 直接用序列化后的Chat ID发送消息 await client.sendMessage(groupChat.id._serialized, text); console.log("消息已发送到群组"); } else { console.log("未找到指定群组"); } });
方法3:先列出所有已加入的群组,获取目标ID
如果不确定群组名称或ID,可以先打印所有已加入的群组信息,找到目标ID后再用方法1发送:
client.on('ready', async () => { console.log('Client is ready!'); // 获取所有聊天会话 const chats = await client.getChats(); // 筛选出所有群组 const groups = chats.filter(chat => chat.isGroup); console.log("已加入的群组列表:"); groups.forEach(group => { console.log(`群组名称:${group.name},Chat ID:${group.id._serialized}`); }); });
注意事项
- 确保你的客户端账号已经加入目标群组,否则无法发送消息
group.id._serialized就是格式化好的Chat ID,直接使用即可,无需手动拼接
内容的提问来源于stack exchange,提问作者yrsdi
相关产品推荐
相关产品推荐

