在heroku上部署whatsapp网络机器人



我正在使用节点库whatsapp-web.js创建一个whatsapp机器人。完成脚本后,它看起来像(我只是对原始脚本进行了概述(-

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");
}
}
});

脚本一切都很好,在linux或ubuntu上运行良好(我已经在Heroku应用程序上添加了puppeteer构建包(。由于我需要持续运行该脚本,我决定将其放在工作进程中。

Procfile

worker:node index.js但现在角色出现了问题,我如何在这里进行身份验证?我决定从index.js 中删除那行

qrcode.generate(qr,{small:true}(;而且我想我会在heroku cli 上打印所有日志

heroku日志-一个wweb机器人#我的应用程序名为wweb bot并从那里访问生成为qr的密钥。之后我会把它变成一个qr码并扫描它。当我完成所有设置并尝试它时,我得到了一个不断生成的qr键日志。它是不间断的,每隔15-20秒就会生成一次密钥。这里有什么问题?是因为Heroku有一个只读环境,还是缺少其他任何东西?请帮我怎么做

删除或注释此代码

//authStrategy:新的LocalAuth((

它对heroku不起作用但由于代码在服务器上,你不需要一次又一次地扫描,你只需要重新启动服务器就可以扫描

但是,如果你面临puppeteer错误,那么在heroku/yourproject/settings/scrol中将这些构建包添加到adduildpack中添加这两个构建包

  1. https://github.com/jontewks/puppeteer-heroku-buildpack
  2. https://github.com/heroku/heroku-buildpack-google-chrome

然后重新部署您的应用程序

编辑:现在whatsapp-web.js添加了名为RemoteAuthStatergy的新功能,只需遍历即可。

在Render、Firebase函数和Google Cloud运行中尝试过。做不到。最后不得不使用一个谷歌虚拟机实例。

最新更新