
Compartilhar:
Steve é um ex-membro da equipe da Vonage. Ele atuou como Developer Advocate .NET na Vonage, engenheiro de software full-stack poliglota, especializado em IA/ML
Como lidar com mensagens recebidas não compatíveis usando a Messages API
Tempo de leitura: 2 minutos
A Messages API permite que você se conecte com seus clientes por meio de diversos canais de mensagens sociais, como WhatsApp, Facebook Messenger e Viber.
A conexão é bidirecional; você pode tanto enviar quanto receber mensagens. Mas, no mundo em rápida evolução dos canais de mensagens sociais, há uma questão específica. O que acontece se um cliente conseguir enviar para a sua empresa um tipo de mensagem que ainda não é compatível?
Por exemplo, o que acontece quando um cliente envia um adesivo pelo WhatsApp? Essa é uma dúvida comum entre quem está integrando a Messages API.
A resposta está no corpo da solicitação da mensagem recebida. O JSON da mensagem recebida contém um type campo dentro do objeto de conteúdo da mensagem.
Se o tipo não for compatível, o type campo será unsupported; isso se aplica ao WhatsApp, Viber, Facebook Messenger e MMS. O corpo de uma mensagem recebida com uma carga não compatível terá a seguinte aparência:
{
"message_uuid": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
"timestamp": "2020-01-01T14:00:00.000Z",
"to": {
"type": "whatsapp",
"number": "447700900000"
},
"from": {
"type": "whatsapp",
"number": "447700900001"
},
"message": {
"content": {
"type": "unsupported"
}
}
}Observe como ele fornece o número do WhatsApp do seu cliente. Com essa informação em mãos, você pode decidir como seu aplicativo irá lidar com isso. Talvez seja interessante registrar que o cliente respondeu a você, e talvez seja necessário responder a ele, indicando que ele enviou uma mensagem que você não conseguiu entender.
Detecção de uma mensagem não suportada no código
Normalmente, gosto de exemplos de código para ilustrar Concepts como esses, então vamos dar uma olhada em um exemplo usando o Node.js. Crie um novo diretório e, dentro dele, execute npm install express body-parser
Agora crie um novo arquivo chamado server.js. Aqui, vamos adicionar o código a seguir.
const app = require('express')()
const bodyParser = require('body-parser')
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))
app.post('/webhooks/inbound-message', (req, res) => {
if(req.body['message']['content']['type'] == 'unsupported'){
console.log("Received an unsupported message from "
+ req.body['from']['number']);
// add the rest of your unsupported logic here.
}
else{
console.log(req.body['message']['content'])
}
res.status(200).end();
});
app.listen(5000)
Inicie nosso servidor executando node server.js. Com o servidor em execução, a última coisa que precisamos fazer é conectar as mensagens do WhatsApp a ele.
Eu recomendaria usar ngrok para receber mensagens de entrada do WhatsApp localmente a partir da Messages API do Vonage. Você pode iniciá-lo executando ngrok http 5000 - o que gerará uma URL base para você. Seu aplicativo receberá mensagens em BASE_URL/webhooks/inbound-messages, portanto, use essa URL ao configurar a Sandbox da Messages API.
Com tudo isso configurado, agora você pode enviar mensagens para si mesmo. Então, se eu abrisse o WhatsApp e enviasse um adesivo de café para o Messages Sandbox:

Meu aplicativo receberá a mensagem e exibirá o seguinte: Received an unsupported message from WHATSAPP_NUMBER.
Caso contrário, ele exibirá o conteúdo da mensagem.

Recursos
Se você quiser aprender a enviar uma mensagem pelo WhatsApp, há um ótimo guia explicativo do Garann Means
Se você estiver interessado em usar a Messages API de maneira geral, nosso site de documentação tem muito conteúdo e explicações sobre como começar a usá-la.
Você pode encontrar o código desta postagem do blog em GitHub