orkestral / venom

Venom is a high-performance system developed with JavaScript to create a bot for WhatsApp, support for creating any interaction, such as customer service, media sending, sentence recognition based on artificial intelligence and all types of design architecture for WhatsApp.
https://orkestral.io
Apache License 2.0
6.12k stars 1.21k forks source link

Como obter uma mensagem enviada para o BOT via GET method? #1771

Closed fredzolio closed 2 years ago

fredzolio commented 2 years ago

Estou com muita dificuldade em obter essa requisição!!

github-actions[bot] commented 2 years ago

Thank you for joining our community, happy. We are currently fixing this bug, our new version will be released soon.

Working with Love!

armandinhox commented 2 years ago

Estou com muita dificuldade em obter essa requisição!!

pode mostrar o codigo e o que está tentando fazer?

fredzolio commented 2 years ago

Opa, boa tarde, tudo bem? Fico feliz que tenha me respondido. Então, eu tenho um sistema de automação e segurança pessoal com o home assistant, node-red e pi. E uso do venom como um fator notificação para o meu whatsapp pessoal e de minha família. Atualmente meu código é simples e se trata apenas de realizar envio de mensagem por POST method. Segue abaixo:

const venom = require('venom-bot');

const express = require('express');
const http = require('http');
const app = express();
const port = process.env.PORT || 3333;
const server = http.createServer(app);
const { body, validationResult } = require('express-validator');
app.use(express.json());
app.use(express.urlencoded({ extended: true }));

venom 
    .create({
        headless: true,
        session: 'undefined'})
        .then((client) => start(client))
        .catch((erro) => {
                console.log(erro);
        });

function start(client) {

        app.post('/send-message', [
                            body('number').notEmpty(),
                            body('message').notEmpty(),
                ], async (req, res) => {
            const errors = validationResult(req).formatWith(({
                msg
            }) => {
                return msg;
            });

            if (!errors.isEmpty()) {
                return res.status(422).json({
                    status : false,
                    message: errors.mapped()
                });
            }
            const chatsAllNew = getAllChatsNewMsg();
            const number = req.body.number;
            const message = req.body.message;

            //client.sendText(number, message);
            client.sendText(number, message).then(response => {
                res.status(200).json({
                    status: true,
                    message: 'Mensagem enviada',
                    response: response
                });
            }).catch(err => {
                res.status(500).json({
                    status: false,
                    message: 'Mensagem nao enviada',
                    response: err.text
                });
            });
            //rer.send('Mensagem enviada');
            })
}
            server.listen(port, function() {
    console.log('App running on *: ' + port);
});

A minha vontade é conseguir ativar automações dentro do meu sistema, filtrando mensagens comando que eu envio do meu whatsapp para o meu bot, através de requisição GET que meu servidor faria para o venom-bot, lendo as mensagens. E é exatamente isso que eu não estou conseguindo fazer. Já tentei usufruir da lib de retrieve porém nada funcionou. Agradeço muito a sua ajuda.

fredzolio commented 2 years ago

Estou com muita dificuldade em obter essa requisição!!

pode mostrar o codigo e o que está tentando fazer?

Me esqueci de marcar sua mensagem, não sei se o GIT faz isso mesmo sem marcar... De qualquer forma...

armandinhox commented 2 years ago

Cara não entendi o codigo onde você ta usando get? E outra coisa a função const chatsAllNew = getAllChatsNewMsg(); parece está com problema no codigo deles. getAllChatsNewMsg grupos e outras tambem.

fredzolio commented 2 years ago

Cara não entendi o codigo onde você ta usando get? E outra coisa a função const chatsAllNew = getAllChatsNewMsg(); parece está com problema no codigo deles. getAllChatsNewMsg grupos e outras tambem.

Obrigado por tentar me ajudar. Eu consegui resolver meu problema, escrevi um código que integra o bot com o DialogFlow, daí ele lê as mensagens e dentro do Dialog eu programei para ele enviar via POST tudo que é recebido no bot. Portando consegui resolver meu problema.