Introdução
Um webhook é uma ferramenta que permite a comunicação entre aplicações, possibilitando o envio de dados para uma aplicação A imediatamente após a ocorrência de um evento na aplicação B. Também chamados de callbacks, os webhooks substituem a abordagem chamada polling, onde uma aplicação fica solicitando de tempos em tempos o status de uma ocorrência. Com o uso de webhooks, a comunicação entre sistemas diferentes torna-se muito mais simples. Na ZapperAPI, há webhooks para notificar sua aplicação das seguintes ações no WhatsApp:- Recebimento de mensagens
- Recebimento de reações em mensagens
Como usar
Pelo dashboard
Para cadastrar uma URL através do dashboard, siga os seguintes passos:- Selecione a instância desejada;
- Clique na guia Webhook;
- Digite a URL do seu webhook e uma chave secreta (opcional);
- Clique no botão Atualizar para salvar as informações de seu webhook.
Pela API
Para cadastrar uma URL para receber os webhooks da ZapperAPI, consulte a Seção Webhooks na documentação de referência da API. Além daurl, você deverá informar qual a secretKey que a ZapperAPI deve enviar
para autenticar que é a ZapperAPI que está disparando a requisição. A secret
será enviada no cabeçalho da requisição, no formato de Authorization Bearer.
IMPORTANTE
A
secretKey é a única maneira de garantir que as requisições que sua aplicação
recebe são oriundas do webhook da ZapperAPI. Você é o responsável por executar
a validação da informação, bem como proteger sua aplicação com outras regras de
segurança, como rate limits e SSL. Nunca forneça a sua secretKey, e sempre
que possível, faça uma rotação regular de seu valor.INFORMAÇÃO
Os arquivos recebidos pelos Webhooks da ZapperAPI ficam armazenados em nossos
servidores pelo prazo de 7 dias.
Eventos da própria sessão conectada
Por padrão, o webhook da ZapperAPI trará também as mensagens enviadas pela própria sessão conectada. Isso ocorre porque trabalhamos com sistema de fila obrigatória, de modo que após o envio da mensagem, não é possível ter o ID da mensagem, apenas o jobId da fila. Assim, as mensagens do webhook que tiverem o campojobId referem-se a mensagens
disparadas pela ZapperAPI, de modo que outras mensagens disparadas por outros
dispositivos não terão esse campo no webhook.
Exemplos de payload
A seguir, iremos listar os exemplos de payload dos webhooks da ZapperAPI, para os diferentes tipos de mensagens recebidas no WhatsApp:Atualização da conexão
Tipo:connection.update
Recebimento de mensagens
Tipo:messages.upsert
Mensagem de texto
Recebimento de reações em mensagens
Tipo:messages.reaction
Envio de reação
key: Dados da mensagem que recebeu a reaçãoreaction.key: Dados de quem enviou a reaçãoreaction.text: Emoji utilizado