
Partager:
Ancien développeur .NET Advocate @Vonage, ingénieur logiciel polyglotte full-stack, AI/ML
Gestion des messages entrants non pris en charge avec l'API Messages
Temps de lecture : 2 minutes
L'API Messages API vous permet d'entrer en contact avec vos clients par l'intermédiaire de nombreux canaux de messagerie sociale tels que WhatsApp, Facebook Messenger et Viber.
La connexion est bidirectionnelle : vous pouvez à la fois envoyer et recevoir des messages. Mais dans le monde en évolution rapide des canaux de messagerie sociale, un problème particulier se pose. Que se passe-t-il si un client parvient à envoyer à votre entreprise un type de message qui n'est pas encore pris en charge ?
Par exemple, que se passe-t-il lorsque votre client vous envoie un autocollant via WhatsApp ? Cette question est omniprésente pour les personnes qui intègrent l'API Messages.
La réponse se trouve dans le corps de la requête du message entrant. Le JSON du message entrant contient un champ type dans l'objet de contenu du message.
Si le type n'est pas pris en charge, le champ type est unsupported; c'est le cas pour WhatsApp, Viber, Facebook Messenger et MMS. Le corps d'un message entrant dont la charge utile n'est pas prise en charge se présente comme suit :
{
"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"
}
}
}Remarquez qu'il vous fournit le numéro WhatsApp de votre client. Muni de ces informations, vous pouvez décider de la manière dont votre application va traiter le message. Vous pouvez noter que votre client vous a répondu, et vous pouvez lui répondre en indiquant qu'il a envoyé un message que vous n'arrivez pas à comprendre.
Détection d'un message non pris en charge dans le code
J'aime généralement les exemples de code pour illustrer des concepts comme ceux-ci, alors regardons un exemple utilisant Node JS. Créez un nouveau répertoire et dans son exécution npm install express body-parser
Créez maintenant un nouveau fichier appelé server.js. Nous y ajouterons le code suivant.
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)
Démarrez notre serveur en exécutant node server.js. Une fois notre serveur lancé, la dernière chose à faire est d'y connecter WhatsApp Messages.
Je recommande d'utiliser ngrok pour recevoir localement les messages WhatsApp entrants depuis l'API Messages de Vonage. Vous pouvez le lancer en exécutant ngrok http 5000 - ce qui produira une URL de base pour vous. Votre application va recevoir des messages sur BASE_URL/webhooks/inbound-messagesUtilisez donc cette URL lorsque vous configurez l'interface Sandbox de l'API Messages API Sandbox.
Une fois tout cela connecté, vous pouvez maintenant vous envoyer des messages. Ainsi, si je vais dans WhatsApp et que j'envoie à l'Environnement de travail des messages un autocollant de café :

Mon application le recevra et imprimera le message : Received an unsupported message from WHATSAPP_NUMBER.
Sinon, il imprime le contenu du message.

Ressources
Si vous souhaitez apprendre à envoyer un message WhatsApp, il existe un excellent d'explication de Garann Means
Si vous souhaitez utiliser l'API Messages de manière générale, vous pouvez consulter notre site web docs contient de nombreux contenus et explications sur la manière de démarrer.
Vous pouvez trouver le code de cet article de blog dans GitHub