O webhook messages
messages é o campo que carrega tudo o que um cliente envia para o seu número: texto, mídia, respostas, reações e retornos interativos. Em um número com Coexistência roteado, ele vai da Meta direto para o seu endpoint, e nunca passa por um provedor.
O campo de webhook que carrega as mensagens recebidas dos clientes.
O prefixo do id da mensagem usado para eliminar repetições.
O status que a Meta espera rápido, antes de qualquer processamento.
O que o payload carrega
Uma ou mais mensagens em uma única entrega, cada uma com o remetente, um id e um tipo. O tipo decide quais outras chaves estão presentes.
- O número de telefone de quem enviou, e o phone number id do número para o qual escreveram.
- Um id de mensagem wamid, que é a base da eliminação de repetições.
- Um timestamp unix.
- Um tipo: text, image, audio, video, document, sticker, location, contacts, reaction, button ou interactive.
- Para tipos de mídia, um id de mídia para buscar o arquivo, e não os bytes em si.
Por que ele nunca chega a nós em um número roteado
Porque o override move este campo, junto de smb_message_echoes, para o destino que você indicar.
A Meta permite que um app sobrescreva para onde uma conta do WhatsApp Business entrega os webhooks dela. Nós apontamos esse override para a sua URL, o que tira o caminho de mensagem da nossa infraestrutura por completo. Não existe cópia, nem fila, nem retenção do nosso lado, porque a entrega nunca chega lá.
Quando nenhum destino é definido, esses eventos caem no nosso callback padrão, onde o handler os descarta sem persistir. Essa é a diferença entre uma afirmação sobre armazenamento e um caminho de código: não há para onde o conteúdo de conversa ir.
Confirmando o recebimento do jeito certo
Devolva 200 antes de fazer o trabalho, não depois.
A Meta trata uma resposta lenta como falha e repete a entrega, o que significa que um handler que processa na mesma requisição vai ver a mesma mensagem mais de uma vez. Responda na hora, coloque o payload em uma fila ou em uma tarefa de segundo plano, e deixe o trabalho acontecer fora da requisição.
Em serverless isso não é opcional. Uma função que responde e depois continua trabalhando pode ser congelada no instante em que responde, então a confirmação e o processamento precisam ser de fato separados.
Eliminando repetições
Pelo wamid, sempre, porque repetir a entrega é normal, e não excepcional.
A mesma mensagem pode chegar duas vezes por motivos que não têm nada a ver com um bug do seu lado: uma resposta lenta, um timeout de rede, um deploy no meio da entrega. Guardar os ids já vistos e pular os repetidos são poucas linhas, e é a diferença entre um cliente ser respondido uma vez e ser respondido duas.
Em um número com Coexistência isso importa ainda mais, porque smb_message_echoes chega pelo mesmo caminho e um handler que trata todo evento como novo vai responder em cima de uma pessoa que já respondeu.
Erros comuns
- Processar antes de devolver 200. A Meta repete a entrega lenta e você trata a mensagem duas vezes.
- Pular a eliminação de repetições. As repetições são por projeto, não um caso extremo.
- Esperar os bytes da mídia no payload. Ele carrega um id de mídia para buscar o arquivo.
A EasyCoexistence roteia este campo direto da Meta para o seu endpoint e guarda apenas os eventos operacionais de que o monitoramento é feito, então o conteúdo de conversa não tem caminho nenhum até o nosso armazenamento.
Perguntas frequentes
A EasyCoexistence vê as mensagens dos meus clientes?
Não. O override entrega este campo no seu endpoint. Qualquer coisa que chegue ao nosso callback de reserva é descartada sem ser persistida.
Podem chegar várias mensagens em uma requisição?
Sim. Uma única entrega pode trazer mais de uma, então os handlers devem percorrer a lista em vez de ler só a primeira.
Como eu pego a mídia?
O payload carrega um id de mídia. Busque a URL com ele usando o token de acesso do número, e então baixe.
O que é smb_message_echoes?
O campo companheiro que carrega o que a sua equipe envia pelo app do WhatsApp Business. Ele só existe em números com Coexistência.
Continue lendo
Pronto para começar?
Configure o WhatsApp Coexistence em minutos, não em meses. O aplicativo continua funcionando no celular.
Começar teste grátisVerificado em