Aqui abordaremos com exemplos práticos de como os webhooks disparados em casos de envio de mensagem do tipo audio.
No geral, quando se envia uma mensagem no Zapfy, após a fila executar a mensagem, é disparado um webhook inicial do tipo NEW-MESSAGE, esse webhooks é disparado toda vez que uma instância envia ou recebe uma nova mensagem.
Exemplo real
Adicionamos comentários nas propriedades para melhor entendimento.
{
"type": "NEW-MESSAGE",
"instanceKey": "b08f4262-b74f-4b7b-9958-1c7d5d1dc5e7", // key de identificação da instância que recebeu/enviou a mensagem
"id": "fc0345bc-d5f4-4592-ab2b-f263c12c8c42", // ID da mensagem (esse ID só terá valor caso a mensagem seja enviada via API zapfy)
"data": {
"isOnWhatsApp": [
{
"exists": true, // Propriedade que diz se o contato existe ou não no WhatsApp
"jid": "5527997320619@s.whatsapp.net" // Contato que foi o destinatário da mensagem
}
],
"messageStubParameters": [],
"labels": [],
"userReceipt": [],
"reactions": [],
"pollUpdates": [],
"key": {
"remoteJid": "5527997320619@s.whatsapp.net",
"fromMe": true,
"id": "BAE5DA285CEE647A",
"messageUuid": "75beef95-6025-4536-b6e4-585a5e58a24c"
},
"message": {
"audioMessage": {
"url": "https://zapfy-bucket.sfo3.digitaloceanspaces.com/temp-files/BAE5DA285CEE647A.m4a",
"mimetype": "audio/mp4",
"fileSha256": "smEeWwOtRFxcZZKtUourolVtINn40HjUJaEhhw/8twU=",
"fileLength": "897517",
"seconds": 55,
"ptt": true,
"mediaKey": "1w2AvIZhaafub4NvL/UNSWQNARpri4wPL6zfCIuCnqk=",
"fileEncSha256": "CZ0PdCdeu2oDIDKnVqXjXlvZlr4CvBunPZtc+l8PMOk=",
"directPath": "/v/t62.7114-24/29898512_5923975314357380_5378863744847718898_n.enc?ccb=11-4&oh=01_AdQ0SOUZQA9NeytOqHnu8jpFL54lqx9K9JVTBoNRRR0KpA&oe=63F3B90A",
"mediaKeyTimestamp": "1674326566"
}
},
"messageTimestamp": {
"low": 1674326566,
"high": 0,
"unsigned": true
},
"status": 1
},
"ids": [
"fc0345bc-d5f4-4592-ab2b-f263c12c8c42"
]
}
Dica
É importante lembrar que todo envio ou recebimento de mensagem gera eventos do tipo MESSAGE-UPDATED, dê uma olhada para entender melhor do que se trata em Alteração de status da mensagem.
Sempre se baseie na propriedade fromMe para saber se foi sua instância que enviou a mensagem.
Se essa propriedade for false, significa que a mensagem foi recebida, e não enviada, ou seja, alguém mandou essa mensagem para o número conectado na sua instância