Ligar uma instância da Evolution API com o código QR, e voltar a ligar

Uma instância da Evolution API é um número de WhatsApp ligado ao seu servidor. Com a integração Baileys liga-se como se liga um computador ao WhatsApp Web: pede-se um código QR à API e lê-se com o telemóvel. Quando a ligação cai, quase sempre se resolve lendo outro QR. Este artigo diz como, e como perceber porque caiu antes de tentar outra vez.

Os pedidos exactos (as rotas, os campos e o formato da resposta) estão na documentação oficial do projecto, e mudam com as versões. Aqui fica a sequência, não a sintaxe.

Ligar uma instância nova

1 Crie a instância. É um pedido autenticado com a chave da API (AUTHENTICATION_API_KEY) que dá um nome à instância e escolhe a integração. Escolha o Baileys para ligar por QR. A documentação diz o que o pedido leva.
2 Peça a ligação. A API devolve o código QR. Nas versões que o suportam, a documentação também prevê um código de emparelhamento, que se escreve no telemóvel em vez de se ler.
3 Mostre o QR e leia-o depressa. O código expira em pouco tempo e a API muda-o. Se o ecrã demorar, peça outro. Se o recebe como texto codificado em vez de imagem, a documentação explica como o transformar em imagem.
4 No telemóvel, abra o WhatsApp, vá às definições, escolha os dispositivos associados e associe um dispositivo. Aponte a câmara ao QR.
5 Confirme o estado. Pergunte à API o estado da ligação. Enquanto diz «connecting», ainda não ligou. Quando passa ao estado de ligado (o nome exacto vem na documentação), pode enviar. Veja enviar a primeira mensagem.
O QR dá acesso ao número. Quem o ler passa a poder enviar mensagens como si. Não o deixe numa página pública, numa conversa de grupo ou numa captura de ecrã guardada. Se o mostrou a quem não devia, termine a sessão em dispositivos associados no telemóvel.

Quando a ligação cai

Causa Como se vê O que fazer
Saiu dos dispositivos associados Removeu a sessão no telemóvel ou o WhatsApp terminou-a. Ler um QR novo. A sessão antiga não se recupera.
O telemóvel esteve muito tempo sem ligação O WhatsApp desassocia os dispositivos quando o telefone fica demasiado tempo desligado da internet. Ligue o telefone à internet e leia um QR novo se pedir.
As sessões perderam-se Depois de um reinício ou de uma actualização, a instância deixou de existir. Faltava o volume persistente. Veja PostgreSQL e Redis.
Fica em «connecting» O QR nunca chega a ligar e o serviço reinicia. Veja a instância presa em «connecting».
O número foi bloqueado O telemóvel mostra um aviso do WhatsApp e não há QR que o valha. É o risco do Baileys. Não insista: veja o risco e as regras.

Reconectar sem perder tempo

1 Primeiro o estado. Pergunte à API em que estado está a instância antes de mexer em nada.
2 Depois os registos. docker compose logs -f diz se o erro é de sessão, de rede ou do serviço.
3 Pedir outra ligação costuma chegar se a instância existe mas está desligada.
4 Só se isso não resultar, apague a instância e crie-a de novo, com a documentação aberta. Terá de ler um QR novo.
Evite desligar e voltar a ligar o mesmo número uma e outra vez. Tentativas repetidas parecem comportamento suspeito, e o WhatsApp pode reagir. Se a ligação não fica estável, procure a causa em vez de repetir.

Precisa de mais um servidor para as suas instâncias? Veja os VPS.

Ver servidores VPS

VEJA TAMBÉM

Enviar a primeira mensagem com a Evolution API

A instância presa em «connecting»

Baileys ou Cloud API: o risco e as regras

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 5.940,00 Kz/mês (plano de 3 anos, com cupão)

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?