O webhook messages
messages é o campo que transporta tudo o que um cliente envia para o seu número: texto, multimédia, respostas, reações e respostas interativas. Num número Coexistence encaminhado, segue da Meta diretamente para o seu endpoint e nunca passa por um fornecedor.
O campo webhook que transporta mensagens recebidas de clientes.
O prefixo no id da mensagem usado para eliminar repetições.
O estado que a Meta espera rapidamente, antes de qualquer processamento.
O que o payload transporta
Uma ou mais mensagens numa única entrega, cada uma com o remetente, um id e um tipo. O tipo determina que outras chaves estão presentes.
- O número de telemóvel do remetente e o phone number id do número para o qual escreveu.
- Um id de mensagem wamid, que serve de base à eliminação de duplicados.
- Um carimbo de data e hora Unix.
- Um tipo: text, image, audio, video, document, sticker, location, contacts, reaction, button ou interactive.
- Nos tipos multimédia, um id de multimédia para obter o conteúdo, em vez dos próprios bytes.
Porque nunca chega até nós num número encaminhado
Porque o override move este campo, juntamente com smb_message_echoes, para o destino que indicar.
A Meta permite que uma aplicação altere o local onde uma WhatsApp Business Account entrega os seus webhooks. Definimos esse override para o seu URL, retirando totalmente o percurso das mensagens da nossa infraestrutura. Não existe cópia, fila nem retenção do nosso lado, porque a entrega nunca chega lá.
Quando não é definido um destino, estes eventos recorrem ao nosso callback predefinido, onde o handler os descarta sem os persistir. Essa é a diferença entre uma afirmação sobre armazenamento e um caminho de código: não há qualquer local para onde o conteúdo das conversas possa ir.
Como confirmar corretamente
Devolva 200 antes de fazer o trabalho, não depois.
A Meta considera uma resposta lenta uma falha e tenta novamente, o que significa que um handler que processe inline verá a mesma mensagem mais do que uma vez. Responda de imediato, coloque o payload numa fila ou tarefa em segundo plano e deixe o trabalho acontecer fora do pedido.
Em serverless, isto não é opcional. Uma função que termina e continua a trabalhar pode ser congelada no momento em que responde, pelo que a confirmação e o processamento têm de estar realmente separados.
Eliminar duplicados
Sempre com base no wamid, porque as novas tentativas são normais e não excecionais.
A mesma mensagem pode chegar duas vezes por razões que nada têm que ver com um erro do seu lado: uma resposta lenta, um timeout de rede ou uma implementação durante a entrega. Guardar os ids já vistos e ignorar repetições requer poucas linhas e faz a diferença entre responder uma vez ou duas a um cliente.
Num número Coexistence, isto é ainda mais importante, porque smb_message_echoes chega pelo mesmo caminho e um handler que trate cada evento como novo responderá por cima de uma pessoa que já respondeu.
Erros comuns
- Processar antes de devolver 200. A Meta repete uma resposta lenta e a mensagem é tratada duas vezes.
- Ignorar a eliminação de duplicados. As novas tentativas fazem parte do funcionamento normal, não são um caso raro.
- Esperar bytes de multimédia no payload. Este transporta um id de multimédia para obter o conteúdo.
EasyCoexistence encaminha este campo diretamente da Meta para o seu endpoint e conserva apenas os eventos operacionais usados pela monitorização, pelo que o conteúdo das conversas não tem qualquer caminho para o nosso armazenamento.
Perguntas frequentes
A EasyCoexistence vê as mensagens dos meus clientes?
Não. O override entrega este campo ao seu endpoint. Tudo o que chega ao nosso callback de recurso é descartado sem ser persistido.
Podem chegar várias mensagens num único pedido?
Sim. Uma única entrega pode conter mais do que uma, pelo que os handlers devem percorrê-las em vez de lerem apenas a primeira.
Como obtenho os conteúdos multimédia?
O payload transporta um id de multimédia. Use-o para obter o URL com o access token do número e, em seguida, transfira o conteúdo.
O que é smb_message_echoes?
O campo complementar que transporta o que a sua equipa envia a partir da aplicação WhatsApp Business. Só existe em números Coexistence.
Continue a ler
Pronto para começar?
Configure a Coexistência do WhatsApp em minutos, não em meses. A aplicação continua a funcionar no telemóvel.
Começar período experimental gratuitoVerificado em