繁体   English   中英

Whatsapp-Web.js 恢复 session

[英]Whatsapp-Web.js restore session

我正在使用 whatsapp-web.js 库,我想在重新启动脚本后保持登录状态。 目前我每次启动都必须扫描二维码。 我在网上找到的东西无法正常工作(可能是因为我很笨但仍然如此)。 作为参考,这是我试图让它工作的代码。

const { Client, LocalAuth, MessageMedia } = require('whatsapp-web.js');
const fs = require('fs');



const client = new Client({
    ffmpegPath: "C:/ffmpeg/bin/ffmpeg.exe"
});



client.on('qr', async qr=> {
     qrcode.generate(qr, {small: true});

});

client.on('ready', async function () {
    console.log('Client is ready!');
});

提前致谢。

我修好了它。 对于看到这个并有同样问题的任何人,这对我有用:将它添加到客户端: authStrategy: new LocalAuth()并在第一次生成二维码后,等待几分钟,然后点击 ctrl+ C

在最近的版本中,您必须手动实现“LocalAuth”。

为此,打开位于“ ./node_modules/whatssap-web.js/src/Client.js ”的“ Client.js ”文件并实现这一行

const LocalAuth = require('./authStrategies/LocalAuth');

现在更改第 #68 行

this.authStrategy = new NoAuth();

this.authStrategy = new LocalAuth();

对于版本 1.16.4-alpha.0
日期:27/08/2022

const fs = require('fs');
const { Client, LegacySessionAuth } = require('whatsapp-web.js');

// Path where the session data will be stored
const SESSION_FILE_PATH = './session.json';

// Load the session data if it has been previously saved
let sessionData;
if(fs.existsSync(SESSION_FILE_PATH)) {
    sessionData = require(SESSION_FILE_PATH);
}

// Use the saved values
const client = new Client({
    authStrategy: new LegacySessionAuth({
        session: sessionData
    })
});

// Save session values to the file upon successful auth
client.on('authenticated', (session) => {
    sessionData = session;
    fs.writeFile(SESSION_FILE_PATH, JSON.stringify(session), (err) => {
        if (err) {
            console.error(err);
        }
    });
});
 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM