Repositório com funções básicas do Venom-bot.
Projeto pode ser clonado e implementado com funções do seu interesse 👍.
Arquivo index utiliza classes
.
Server e rotas criados com express
.
Rodar o projeto - comandos
npm install
npm run dev
Forma de usar
-
Ler o QR code quando aparecer no terminal
-
Fazer a chamada das funções (duas formas):
2.1 Enviar uma mensagem referente a função desejada para o número conectado ao venom- mensagens aceitas [text, image, buttons]
2.2 Fazer requisição para o endpoint referente a função desejada, passando os devidos parâmetros
- Exemplo endpoint:
localhost/send-text
instalar versão específica da lib
- npm i venom-bot@<version>
Versões utilizadas
- ^5.0.7
- ^5.0.11
- ^5.0.13
- ^5.0.21
Referências
- Venom-bot
- Building a REST API with Node and Express
- How to create a REST API with Node.js and Express
- Criando um WhatsApp Bot para o Woodstock de 1969 ☮️ — NodeJS
Modificações
"Gambiarras" para cada versão.
Alterações que funcionaram para mim usando WhatsApp pessoal no Linux e Windows.
5.0.6
Erro: Error no open browser....
No arquivo node_modules/venom-bot/dist/controllers/browser.js na função folderSession
:
/* add */
const sessionName = options.session || ""
/* comment (const folderSession before) */
// const folderSession = path.join(path.resolve(process.cwd(), options.mkdirFolderToken, options.folderNameToken, options.session));
/* modify (const folderSession after) */
const folderSession = path.join(
path.resolve(
process.cwd(),
options.mkdirFolderToken,
options.folderNameToken,
sessionName
)
)
5.0.7, 5.0.11 & 5.0.13
Erro: Error no open browser....
No arquivo node_modules/venom-bot/dist/controllers/browser.js na função initBrowser
:
/* modify */
const launchOptions = {
/* (headless after) */
headless: true,
/* (headless before) */
// headless: options.headless,
devtools: options.devtools,
args:
(_d = options.browserArgs) !== null && _d !== void 0
? _d
: puppeteer_config_1.puppeteerConfig.chromiumArgs,
...options.puppeteerOptions,
...extras,
}
5.0.13
Erro: Error no open browser....
Usando nesse formato não é necessário alterar funções do node_modules.
venom
.create({
session: "sessionName",
headless: true,
})
.then(client => start(client))
.catch(error => {
console.error("Erro ao criar o cliente do bot:", error)
})
5.0.21
FUNÇÃO SENDIMAGE RETORNANDO ERRO:
erro {
me: {
[...]
},
to: {
[...]
},
erro: true,
text: 'Error to processFiles',
status: 404
}
Issues references:
No arquivo node_modules/venom-bot/dist/lib/wapi/wapi.js alterar:
/* <!-- Before --> */
return (
await n.processAttachments(
"0.4.613" === Debug.VERSION ? t : t.map(e => ({ file: e })),
e,
1 // antes
),
n
)
/*<!-- After -->*/
return (
await n.processAttachments(
"0.4.613" === Debug.VERSION ? t : t.map(e => ({ file: e })),
e,
e // depois
),
n
)
VISIBILIDADE DOS BOTÕES E LISTAS:
Aparentemente e infelizmente, não se consegue visualizar os botões em aparelhos Android, apenas no WhatsApp web (e talvez no IOS).
OBS: Não tenho IOS para confirmar a informação.
Issues references: