[英]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.