I'm creating a whatsapp bot using the node library whatsapp-web.js After I'm done with the script it looks something like (I just put a overview of the orignal script) -
index.js
const {Client, LocalAuth, MessageMedia } = require('whatsapp-web.js');
const qrcode = require('qrcode-terminal');
const client = new Client({
puppeteer: {
args: ['--no-sandbox', "--disable-setuid-sandbox"]
},
authStrategy: new LocalAuth()
});
client.on('qr', (qr) => {
console.log('qr received: ', qr);
qrcode.generate(qr, {small:true});
});
client.on('ready', () => {
console.log('READY');
});
client.on('message', async msg => {
let type = msg.type;
let chat = await msg.getChat();
if(chat.isGroup) {
//do something
}else {
//
if(msg.body === "ping") {
msg.reply("pong");
}
}
});
Everything is fine with the script and it works good on linux or ubuntu (I already added puppeteer build pack on that Heroku app). As I need to run that script continuously I decided to put that on a worker process.
Procfile
worker: node index.js But now the problem comes in role, how can I authenticate here? I decided to remove that line from index.js
qrcode.generate(qr,{small:true}); And insted I thought I will print all the logs on heroku-cli
heroku logs -a wweb-bot #my app named as wweb-bot and from there access the key generated as qr. After that I'll turn it into a qrcode and scan it. When I did all setup and try it I was getting a continuously generating logs of qr keys. It's nonstop, and keep generating keys after every 15-20 sec. What's the problem here? Is it because Heroku has a read only environment or anything else is missing? Please help me how can i do it
2条答案
按热度按时间jucafojl1#
移除或注解此代码
//验证策略:新建本地身份验证()
它不会在heroku上工作,但由于代码是在服务器上,你不需要一次又一次地扫描,你只需要扫描你重新启动服务器
但是如果你正面临 puppet 师的错误,那么在heroku /your project/settings/scroll down to adduildpack添加这两个构建包
然后重新部署应用程序
hpcdzsge2#
编辑:现在,whatsap-web.js添加了一个新功能,名为RemoteAuthStatergy,只需贯穿整个过程即可。