运行whatsapp-web.js输出QR码后如何对接登录WhatsApp Web?
基于whatsapp-web.js完成WhatsApp Web登录的方案
你看到控制台重复输出QR RECEIVED日志属于正常现象:模块会定时刷新已失效的登录二维码,只要还未完成扫码授权,就会持续输出新的二维码字符串,你只需要将原始字符串转为可扫描的二维码即可完成登录,具体操作如下:
1. 安装必要依赖
除了whatsapp-web.js之外,你还需要安装二维码生成工具,把字符串格式的二维码转为控制台可直接扫描的可视化二维码,安装命令如下:
npm install qrcode-terminal whatsapp-web.js
2. 调整代码逻辑
修改原有代码,新增二维码生成、登录成功状态回调逻辑:
const { Client } = require('whatsapp-web.js'); // 引入控制台二维码生成工具 const qrcode = require('qrcode-terminal'); const client = new Client(); client.on('qr', (qr) => { // 直接在控制台生成可扫描的二维码 qrcode.generate(qr, {small: true}); console.log('请使用手机WhatsApp扫描上方二维码完成登录'); }); // 新增登录成功回调,确认对接状态 client.on('ready', () => { console.log('✅ WhatsApp登录成功,对接完成'); }); client.on('message', async(msg) => { const mentions = await msg.getMentions(); for (let contact of mentions) { console.log(`${contact.pushname} was mentioned`); } }); client.initialize();
3. 执行扫码登录操作
- 运行修改后的代码,等待控制台生成黑白二维码图案
- 打开手机端WhatsApp,进入「设置」页面,点击「已关联的设备」->「关联设备」
- 对准控制台的二维码扫描,确认授权即可完成登录
- 登录成功后会输出成功提示,后续模块会自动缓存会话信息,无需重复扫码
若扫码后仍持续输出二维码,可检查手机网络是否正常,确认账号没有被限制多设备登录,也可以删除项目目录下自动生成的
.wwebjs_auth缓存文件夹后重启程序重试。
内容的提问来源于stack exchange,提问作者httpanand
相关产品推荐
相关产品推荐

