You need to enable JavaScript to run this app. 运行whatsapp-web.js输出QR码后如何对接登录WhatsApp Web?
优惠活动
大模型
产品
解决方案
定价
更多

运行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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 10:48:03