Receber mensagens: os webhooks da Evolution API

Para receber mensagens com a Evolution API não se pergunta à API se há novidades: configura-se um webhook, um endereço seu que a API chama sempre que acontece algo (chegou uma mensagem, mudou o estado da ligação). O seu endereço recebe um pedido com os dados e decide o que fazer. Se ainda não sabe bem o que é, comece por o que é um webhook e como o testar.

Os nomes dos eventos, os campos do webhook e a forma de o configurar estão na documentação oficial, e dependem da versão. Aqui fica o que costuma correr mal.

Montar a recepção

1 Tenha um receptor. Pode ser um fluxo do n8n, um ficheiro do seu site ou uma aplicação sua. Precisa de um endereço que a Evolution API alcance. Para o n8n, veja os webhooks do n8n.
2 Indique o endereço à instância. A documentação diz como definir o webhook de cada instância e como escolher os eventos que interessam. Comece pelos de mensagens recebidas.
3 Mande uma mensagem de teste ao número ligado e veja se o receptor recebeu o pedido. Grave o conteúdo cru de uma mensagem verdadeira: é a melhor documentação dos campos que tem.
4 Responda depressa. O receptor deve devolver sucesso logo, e fazer o trabalho demorado depois. Um receptor lento dá repetições e perdas.
5 Trate as repetições. Qualquer sistema de webhooks pode entregar o mesmo evento duas vezes. Guarde o identificador da mensagem e ignore o que já viu.

Porque não chega nada

Sintoma Causa provável
Nenhum pedido no receptor O webhook não está definido nessa instância, o evento não está escolhido, ou o endereço está mal escrito.
O receptor está no mesmo servidor e não é alcançado Dentro de um contentor, localhost é o próprio contentor. Se estão na mesma rede do Docker, use o nome do serviço. Se não, use o domínio público.
Funciona à mão mas não pela API No n8n, o endereço de teste só funciona enquanto escuta. O de produção só responde com o fluxo activo.
Erro de certificado O receptor tem um HTTPS inválido ou expirado. Veja HTTPS para um contentor.
Chega duas vezes É normal em webhooks. Faça o seu fluxo tolerar repetições.
Cuidado com o ciclo. Se o seu fluxo responde automaticamente a cada mensagem e os eventos incluem as que você próprio envia, ele responde a si mesmo sem parar. Filtre pelo sentido da mensagem (veja nos dados reais qual o campo) e responda só às recebidas. E não responda a mensagens de grupos por defeito.

Proteger o receptor

1 Use HTTPS. Os dados das mensagens passam pelo pedido.
2 Ponha um segredo no endereço (um troço difícil de adivinhar) ou verifique, no receptor, um valor que só a sua API envia. Sem isso, qualquer pessoa que descubra o endereço pode inventar mensagens.
3 Não confie no conteúdo. O texto vem de quem escreveu. Nunca o execute nem o ponha numa consulta à base de dados sem o tratar.
Antes de ligar um fluxo a clientes verdadeiros, deixe-o a receber durante uns dias e leia o que chegou. Os casos esquisitos (imagens, áudios, respostas a mensagens, grupos) aparecem logo. Para o fluxo completo com o n8n, veja a Evolution API com o n8n.

Tem o receptor num servidor seu e precisa de lhe pôr HTTPS? Veja os VPS.

Ver servidores VPS

VEJA TAMBÉM

O que é um webhook e como testá-lo com curl

Webhooks do n8n: URL de teste e de produção

A Evolution API com o n8n

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?