renatoiub / whatsapp-hard-api-node

API REST multidevice do WhatsApp baseada em Baileys em Node.js.
38 stars 16 forks source link

Running some API methods #8

Closed jhernancanom closed 2 weeks ago

jhernancanom commented 2 weeks ago

Hi, friends.

As you can see in the attached PDF, I could run several methods of the API with success, but Scan QR (two of them) and Send MessageText, no.

Who can give me some instructions?

BR-renatoiub.pdf ES-renatoiub.pdf

renatoiub commented 2 weeks ago

Olá, analisei seu PDF e existem algumas inconsistências nele. Primeiro: na criação da instancia: Escolha um nome melhor, sem caracteres especiais como @ - _ dando prioridade para letras e números. Segundo passo: Escolha um método de conexão, você deve optar por código de emparelhamento que nesse caso o nome do browser tem que ser o padrão da documentação ou você utiliza o qrCode, os dois ao mesmo tempo não funciona, caso você queira usar o qrCode você deve deletar e recriar a instancia para que ela gere os qrCodes, o que foi uma falha que vi no seu PDF. Eu recomendo usar o qrCode por ser mais estável. Terceiro ponto: Pra você fazer qualquer envio, você precisa estar com o aparelho conectado, e em toda requisição passar a key da instancia, foi os erros que percebi também. A api até o momento está em perfeito estado de funcionamento. Veja aqui um exemplo de funcionamento: https://api.hardcodebr.com.br/teste-api/

Caso queira mais detalhes de como instalar, configurar e usar a api com o código pró, tenho um curso onde ensino passo a passo: https://pay.hotmart.com/M90002878Q?checkoutMode=10

jhernancanom commented 2 weeks ago

BR-Respu-Renatoiub.pdf

jhernancanom commented 2 weeks ago

BR-Respu-Renatoiub-2.pdf

Antes do seguinte, executei '**Delete All**' e obtive:

{"error":false,"message":"All sessions deleted"}
  1. Eu executo 'Init Instance'. Resposta: ok. { "error": false, "message": "Instancia iniciada", "key": "apirenato", "webhook": { "enabled": false, "webhookUrl": false, "webhookEvents": [ "messages.upsert" ] }, "qrcode": { "url": "http://localhost:3333/instance/qr?key=apirenato" }, "browser": "Ubuntu", "messagesRead": false, "ignoreGroups": false }

  2. Eu executo 'Get Pairing Code' Resposta: ruim. {"error":true,"message":"instância não localizada"} Considero que não devo continuar.

  3. Eu executo 'Get QR in Base64' Resposta: ruim, porque o qrcode está vazio. {"error":false, "message":"QR Base64 fetched successfully", "qrcode":""}

  4. Outros métodos..... Resposta: ainda não tentei.

renatoiub commented 2 weeks ago

Se você usar o paringCode o qrCode não vai funcionar. Use um ou outro. Os outros métodos de envio só irão funcionar após a conexão do aparelho, lendo o qrCode ou conectando via código de emparelhamento. O mesmo procedimento se você faz no WhatsApp web.

jhernancanom commented 2 weeks ago

============================== Procedimiento 1: Con ''Get Pairing Code''

  1. Eu executo 'Delete All'.

    Resposta: ok.

    {"error":false,"message":"All sessions deleted"}

  2. Eu executo 'Init Instance'.

    Resposta: ok. { "error": false, "message": "Instancia iniciada", "key": "apirenato", ..... }

  3. Eu executo 'Instance Info'.

    Resposta: ok. { "error": false, "message": "Instance fetched successfully", "instance_data": { "instance_key": "apirenato", "phone_connected": false, ..... }

  4. Eu executo 'Get Pairing Code'

    Resposta: ok.

    {"error":false,"code":"CODE-8-CHAR-LENGTH"}

  5. Eu executo 'Instance Info'.

    Resposta: ok, mas conectado = falso. { "error": false, "message": "Instance fetched successfully", "instance_data": { "instance_key": "apirenato", "phone_connected": false, ..... }

  6. Eu executo 'Send Text Message'

    Resposta: ---.

    {"error":true,"message":"phone isn't connected"}

**

renatoiub commented 2 weeks ago

Você não conectou o seu WhatsApp, você precisa conectar no WhatsApp.

https://faq.whatsapp.com/1317564962315842/?cms_platform=web&lang=pt-BR

Siga o mesmo procedimento de conexão que o WhatsApp web usa, só que usando o código gerado pela api, seja qrCode ou paringCode (ou um ou o outro).

jhernancanom commented 2 weeks ago

O que se fala nessa URL (própria do Whatsapp) é conectar-se normalmente ao WhatsApp a partir do seu celular.

Por favor amigo: eu sei disso. Se estou envolvido nisso é porque sei disso.

Por favor: é você quem precisa entender que (1) o código QR não está na resposta JSON que sua biblioteca me dá quando executo 'Get QR in Base64', (2) nem aparece de forma alguma quando executo execute 'Scan QR' e (3) não sei o que fazer com o código obtido com 'Get Pairing Code'.

Por exemplo, se a resposta para 'Obter QR em Base64' (aquele que prefiro dos três métodos) contém uma base64, posso fazer o que você diz, mas o campo fica vazio. Mas se um deles funcionar, eu uso --pelo menos nesses testes, porque no final gostaria de base64--.

Quando você fala sobre qrCode, você quer dizer qrBase64?

renatoiub commented 2 weeks ago

Você não está conseguindo gerar o qrCode porque está solicitando o paringCode. A api não vai gerar o qrCode. Nesse caso use o código gerado para se conectar. Passos para se conectar: 1 - Crie a instância e aguarde 3 segundos. 2 - Solicite um QrCode OU um paringCode. 3 - Escanei ou use o código no aparelho que deseja conectar. 4 - Após se conectar use os métodos disponíveis na api.

Api funcionando:

https://api.hardcodebr.com.br/teste-api

Curso onde ensino todos os passos e suporte:

https://pay.hotmart.com/M90002878Q?checkoutMode=10

jhernancanom commented 2 weeks ago

Por favor, Renato: estou fazendo tudo o que você diz:

  1. Não fazer as duas coisas: 'Obter código de emparelhamento' e 'Obter QR em Base64'.

  2. Confirmo: não estou fazendo as duas coisas; não estou fazendo as duas coisas; não estou fazendo as duas coisas.

    A princípio executo a sequência de eventos (iniciada com 'Delete All') com 'Get QR in Base64' para ver o que acontece. Resultado: qrBase64 chega vazio. Portanto, não consigo criar um formulário na minha aplicação para mostrar o código QR e fazer com que ele seja lido pelo celular.

    Em segundo lugar, executo a sequência de eventos (iniciada com 'Delete All') com 'Get Pairing Code' para ver o que acontece. Resultado: recebo um "código" com oito caracteres, mas não sei o que fazer com ele.

    Vamos ficar nisso:

Existem três maneiras de obter algum tipo de código para conectar o aplicativo ao celular:

  1. 'Scan QR' Provavelmente o mais simples de todos. Sua livraria mostrará um formulário onde você poderá ver um código QR para que possa ser lido pelo celular que queremos conectar.

    O problema que estou tendo é que não aparece nenhum formulário: recebo uma resposta HTML, mas se eu salvar não aparece nada, pois não contém nenhum código QR.

  2. 'Get QR in Base64' Provavelmente o mais interessante de todos. Sua livraria nos dará um JSON que contém um código QR em base64, que o programador poderá exibir em um formulário dentro de sua própria aplicação, para que possa ser lido pelo celular que queremos conectar.

    O problema que estou tendo é que - no JSON que recebo - o respectivo campo aparece vazio.

  3. 'Get Pairing Code' Confirmo que - no JSON que recebo - o respectivo campo contém um dado com oito caracteres. Mas eu, HCano, não sei o que fazer com ele.

Usando qualquer uma dessas três formas, podemos conectar um celular ao WhatsApp.

Você já me contou que existe um Hotmart onde você me diz como proceder. Então vamos lá: eu prossigo com o Hotmart e depois continuamos os dois.

===========================================

renatoiub commented 2 weeks ago

Para se conectar com código de emparelhamento use isso: image image Não recomendo a conexão com o código de emparelhamento, o qrCode está 100%. Se você abrir o endereço no navegador ele aparece.

jhernancanom commented 2 weeks ago

Acabei de ver que existe outra opção (“manual”) para conectar um aplicativo ao celular. Vou tentar, só porque é o único que está funcionando na sua biblioteca.

Quando comecei, fiz isso pelo navegador (instance/qr e instance/qrbase64), pois no Postman tive que escrever o mesmo parâmetro em todos os métodos. E também não funcionou: nem no navegador nem no Postman. Achei que faltava alguma coisa e que deveria desenvolver meu aplicativo para ver se ele depurava melhor... mas eles ainda não funcionam.

Desde que comecei, ao rodar pelo navegador ou pelo meu aplicativo, sai assim... sem código QR (ver imagen). ---------- O código de emparelhamento também não funciona. Meu celular diz "não foi possível..." ---------- image

renatoiub commented 2 weeks ago

image Aqui esta tudo ok, gerando e conectando via qrCode. Acredito que tenha alguma coisa errada ai, tente o seguinte, reinstale a api e não use o método de código de emparelhamento.

jhernancanom commented 2 weeks ago

Tudo bem. Mas então... se o código QR não aparecer, o que poderia ser?

Estou anexando a resposta que recebo quando uso 'Scan QR'.

El mar, 27 ago 2024 a la(s) 10:51 a.m., Renato Freitas escribió:

image.png (view on web) Aqui esta tudo ok, gerando e conectando via qrCode. Acredito que tenha alguma coisa errada ai, tente o seguinte, reinstale a api e não use o método de código de emparelhamento.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

renatoiub commented 2 weeks ago

O QrCode não aparece se você acionar primeiro a opção de ParingCode. Caso tenha feito isso você deve deletar a instancia e criar novamente.

jhernancanom commented 2 weeks ago

Este efeito está ocorrendo comigo. Gostaria de saber se é possível excluí-lo.

https://github.com/user-attachments/assets/09e691a6-404b-4119-bace-2e0ccdcbea1c

renatoiub commented 2 weeks ago

No seu caso ai a API deve ser reinstalada do zero, eu recomendo que você faça o curso da API pois vi aqui muitos erros que podem ser resolvidos e esclarecidos lá.

jhernancanom commented 2 weeks ago

Ok.

El mar, 27 ago 2024 a la(s) 5:11 p.m., Renato Freitas escribió:

No seu caso ai a API deve ser reinstalada do zero, eu recomendo que você faça o curso da API pois vi aqui muitos erros que podem ser resolvidos e esclarecidos lá.

Message ID: @.*** com>