billbarsch / myzap

Free Open Source Whatsapp Api
811 stars 328 forks source link

Autenticação não funciona :( #11

Closed saintclair closed 2 years ago

saintclair commented 4 years ago

Primeiro parabéns pelo projeto, ótima iniciativa;

Utilizei o Dockerfile pra build do projeto, gerei a image e o container, sobe na porta correta (3333), consigo até criar a session com sucesso, mas quando gero o QR code a leitura não é feita pelo whatsapp, como se este não fosse o QR Code correto, não consigo autenticar pra seguir...alguma sugestão?

AlanMartines commented 4 years ago

Boa tarde, tudo joia...

Nos meus testes esta passando tranquilo...

Houve uma atualização no venom-bot recentemente, já verificou se não é isso....

saintclair commented 4 years ago

Vou tentar atualizar e refazer o teste, te mantenho informado!

AlanMartines commented 4 years ago

De que forma vc tá tentando autenticar, tá usando o exemplo no da página, pelo link ou pelo arquivo em HTML?

saintclair commented 4 years ago

via qrcode gerado no terminal

saintclair commented 4 years ago

Estou usando o Dockerfile pra gera a imagem e posteriormente o container, conecto no container e Gero a session pela url, conforme orientação e em seguida entro na url do qrcode, mas o whatsapp não lê..o qr code gerado

AlanMartines commented 4 years ago

Tem como mandar um print?

saintclair commented 4 years ago
Captura de Tela 2020-09-22 às 09 16 38 Captura de Tela 2020-09-22 às 09 16 23

Percebo que ele fica gerando infinitamente novos qrcodes, talvez por isso a leitura nunca é possível. IMPORTANTE: estou usando seu Dockerfile;

saintclair commented 4 years ago

Tentei mudar o parametro do create refreshQR: 15000, para 60000 autoClose: 60 60 24 365, //never para false*

Mas sem sucesso também.

AlanMartines commented 4 years ago

Atualiza o venom-bot como esta sendo pedido, eu estou usando essa configurações

    //
    // ------------------------------------------------------------------------------------------------//
    //
    //
    static async initSession(sessionName) {
        console.log("- Iniciando sistema");
        var session = Sessions.getSession(sessionName);
        const client = await venom.create(sessionName, (base64Qr, asciiQR) => {
                //
                session.state = "QRCODE";
                //
                console.log("- Captura do QR-Code");
                //console.log(base64Qr);
                session.qrcode = base64Qr;
                //
                console.log("- Captura do asciiQR");
                // Registrar o QR no terminal
                //console.log(asciiQR);
                session.CodeasciiQR = asciiQR;
                /*
                // Para escrevê-lo em outro lugar em um arquivo
                //exportQR(base64Qr, './public/images/marketing-qr.png');
                var matches = base64Qr.match(/^data:([A-Za-z-+\/]+);base64,(.+)$/),
                    response = {};

                if (matches.length !== 3) {
                    return new Error('- Invalid input string');
                }
                response.type = matches[1];
                response.data = new Buffer.from(matches[2], 'base64');

                // Gerar o arquivo png
                var imageBuffer = response;
                require('fs').writeFile('./public/images/marketing-qr.png',
                    imageBuffer['data'],
                    'binary',
                    function(err) {
                        if (err != null) {
                            console.log(err);
                        }
                    }
                );
                */
            }, (statusSession) => {
                console.log('- Status da sessão:', statusSession);
                //return isLogged || notLogged || browserClose || qrReadSuccess || qrReadFail
                if(statusSession === 'qrReadSuccess'){
                    session.state = "PAIRING";
                }else if(statusSession === 'qrReadFail'){
                    session.state = "STARTING";
                    session.client = Sessions.initSession(sessionName);
                }
                session.status = statusSession;
            }, {
                headless: true, // Headless chrome
                devtools: false, // Open devtools by default
                useChrome: false, // If false will use Chromium instance
                debug: false, // Opens a debug session
                logQR: false, // Logs QR automatically in terminal
                //browserArgs: [''], // Parameters to be added into the chrome browser instance
                browserArgs: [
                    '--log-level=3',
                    '--no-default-browser-check',
                    '--disable-site-isolation-trials',
                    '--no-experiments',
                    '--ignore-gpu-blacklist',
                    '--ignore-certificate-errors',
                    '--ignore-certificate-errors-spki-list',
                    '--disable-gpu',
                    '--disable-extensions',
                    '--disable-default-apps',
                    '--enable-features=NetworkService',
                    '--disable-setuid-sandbox',
                    '--no-sandbox',
                    // Extras
                    '--disable-webgl',
                    '--disable-threaded-animation',
                    '--disable-threaded-scrolling',
                    '--disable-in-process-stack-traces',
                    '--disable-histogram-customizer',
                    '--disable-gl-extensions',
                    '--disable-composited-antialiasing',
                    '--disable-canvas-aa',
                    '--disable-3d-apis',
                    '--disable-accelerated-2d-canvas',
                    '--disable-accelerated-jpeg-decoding',
                    '--disable-accelerated-mjpeg-decode',
                    '--disable-app-list-dismiss-on-blur',
                    '--disable-accelerated-video-decode',
                ],
                disableSpins: true, // Will disable Spinnies animation, useful for containers (docker) for a better log
                updates: true, // Logs info updates automatically in terminal
                autoClose: false, // Automatically closes the venom-bot only when scanning the QR code (default 60 seconds, if you want to turn it off, assign 0 or false)
               }
        );
        return client;
    } //initSession
    //
    // ------------------------------------------------------------------------------------------------//
    //
    //

Altera o logQR: false para logQR: true, para exibir o QR-Code no console, assim vc comprara com o da url.

AlanMartines commented 4 years ago

Opa... E aí deu certo?

saintclair commented 4 years ago

Infelizmente não, mesmo atualizando, então construí uma estrutura básica utilizando o node express e servindo o Venom como api.

Com calma depois vou avaliar melhor teu código, de repente consigo colaborar com algo.

Em ter., 29 de set. de 2020 19:34, Alan Martines notifications@github.com escreveu:

Opa... É aí deu certo?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/billbarsch/myzap/issues/11#issuecomment-701027914, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAG6SXL6LETXD7FGDT62GFTSIJOJBANCNFSM4RJPIRPA .

AlanMartines commented 3 years ago

Meu fork do myzap que estou montando o bot do whats, caso queira dar uma olhada segue o link do projeto mywhats

saintclair commented 3 years ago

Opa, vou dar uma olhada sim.

On Wed, Oct 7, 2020 at 6:39 PM Alan Martines notifications@github.com wrote:

Meu fork do myzap que estou montando o bot do whats, caso queira dar uma olhada segue o link do projeto mywhats https://github.com/AlanMartines/mywhats

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/billbarsch/myzap/issues/11#issuecomment-705208568, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAG6SXIXNNHTJFBIEBJUSQTSJTN25ANCNFSM4RJPIRPA .

--

Saint' Clair de Sousa Izidoro

JNNelson commented 3 years ago

Estava no mesmo problema do looping infinito new qrcode updated - session state.qrcode Atualizei o venon Ficou pior, agora nao roda o node index.js

github

AlanMartines commented 3 years ago

Pela mensagem de erro o modulo rxjs não esta instalado...

npm install rxjs --save
JNNelson commented 3 years ago

Grato Alan Instalado o rxjs e funcionou. Nao esta mais naquele looping infinito, porem o qrcode gerado nao le, conforme ja relatado por outras pessoas. ps: Eu nao conheco o ambiente linux a fundo, estou testando o projeto, fazendo as mesmas operacoes do video, mas infelismente nao estou tendo sucesso. Criei uma maquina virtual com a mesma versao do ubuntu do video e instalei todos os itens.

AlanMartines commented 3 years ago

Instala o node no Windows que roda tranquilo, no momento uso dessa forma...

JNNelson commented 3 years ago

Entendi. Mas nao pretendia usar desta forma, deve ter outro jeito que nao seja ter que ficar instalando complementos no windows, afinal se voce for colocar num cliente, passa a ser mais um item a ser verificado quando algo der errado. Engraçado que no video funcionou tudo redondo e tem varias pessoas aqui passando pelos mesmos problemas. Mas agradeco sua dica.

AlanMartines commented 3 years ago

Entendi. Estava usando numa VPS de teste com Ubuntu 18 server, e estava rodando de boa.... Qual a dificuldade você esta tendo em ambiente linux?

JNNelson commented 3 years ago

Ola Alan, So queria testar igual como foi feito no video, sem ter que instalar nada no meu windows para que funcione. Uma vez que esteja funcionando redondo na maquina virtual, então eu alugaria um vps e instalo na nuvem. Teoricamente era para funcionar ja que usei o virtual box, a mesma versao do ubuntu e instalei todos os pacotes da descricao, mas na pratica eu e outras pessoas estao passando pelas mesmas dificuldades, entao acho que a algo que o video nao cita, ou então, por nao conhecer o ambiente linux, deve haver configuracoes extras que o autor do video deduziu que ja estejam feitas. Minha ideia é depois instalar esta solucao para meus clientes

AlanMartines commented 3 years ago

Qual mensagem de erro esta dando, quando você roda no Ubuntu no seu Virtual Box? Manda um print...

AlanMartines commented 3 years ago

O arquivo package.json, qual a versão do puppeteer?

AlanMartines commented 3 years ago

Se for o caso me manda um email com seu whats... alancpmartines@hotmail.com

JNNelson commented 3 years ago

O erro se da na hora de ler o qrcode pelo celular. O whatsapp nao reconhece. Primeiro ja vi que aquele qrcode que se apresenta no chrome com fundo escuro nao le mesmo. Entao eu copiei a imagem para o paint, o celular le e o o whatsapp nao autentica,

veja, este comando http://localhost:3333/start?sessionName=session1 (localhost eu troco pelo ip da maq.virtual) gera como resposta do servidor new qrcode updated - session.state : QRCODE Antes isto ficava em looping infinito, depois que atualizei o venon, ele mostra 4 vezes e para

em seguida , executo http://localhost:3333/qrcode?sessionName=session1&image=true aparece o qrcode no chrome (so que com fundo escuro, entao copio para o paint)

ao ler com o celular, da a seguinte mensagem : nao foi possivel ler o codigo. certifique-se de que voce esta em web.whatsapp.com e faca a leitura novamente.

Com relacao a esta pergunta : O arquivo package.json, qual a versão do puppeteer? Nao sei lhe responder. So segui os passos do video.

AlanMartines commented 3 years ago

Me manda um e-mail com seu WhatsApp...