
Teilen Sie:
Ehemaliger .NET Developer Advocate @Vonage, polyglotter Software-Ingenieur, AI/ML
Behandlung nicht unterstützter eingehender Nachrichten mit der Messages API
Lesedauer: 2 Minuten
Die Messages API ermöglicht es Ihnen, mit Ihren Kunden über viele Social-Messaging-Kanäle wie WhatsApp, Facebook Messenger und Viber in Verbindung zu treten.
Die Verbindung geht in beide Richtungen; Sie können sowohl Nachrichten senden als auch empfangen. Aber in der sich schnell entwickelnden Welt der Social-Messaging-Kanäle gibt es ein besonderes Problem. Was passiert, wenn es einem Kunden gelingt, einen Nachrichtentyp an Ihr Unternehmen zu senden, der noch nicht unterstützt wird?
Ein Beispiel: Was passiert, wenn Ihr Kunde Ihnen einen Aufkleber über WhatsApp schickt? Diese Frage stellt sich für alle, die mit der Messages API arbeiten, immer wieder.
Die Antwort liegt im Anfragekörper der eingehenden Nachricht. Das JSON der eingehenden Nachricht enthält ein type Feld innerhalb des Inhaltsobjekts der Nachricht.
Wenn der Typ nicht unterstützt wird, wird das type Feld den Wert unsupportedDies gilt für WhatsApp, Viber, Facebook Messenger und MMS. Der Nachrichtentext für eine eingehende Nachricht mit einer nicht unterstützten Nutzlast sieht wie folgt aus:
{
"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"
}
}
}Beachten Sie, dass die App Ihnen die WhatsApp-Nummer Ihres Kunden mitteilt. Mit diesen Informationen können Sie entscheiden, wie Ihre App damit umgehen soll. Vielleicht möchten Sie vermerken, dass Ihr Kunde Ihnen geantwortet hat, und vielleicht möchten Sie ihm antworten und ihm mitteilen, dass er eine Nachricht geschickt hat, die Sie nicht verstehen können.
Erkennung einer nicht unterstützten Nachricht im Code
Zur Veranschaulichung solcher Concepts verwende ich in der Regel gerne Code-Beispiele. Schauen wir uns also ein Beispiel mit Node JS an. Erstellen Sie ein neues Verzeichnis und starten Sie darin npm install express body-parser
Erstellen Sie nun eine neue Datei namens server.js. Hier fügen wir den folgenden Code ein.
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)
Starten Sie unseren Server, indem Sie node server.js. Wenn unser Server läuft, müssen wir als Letztes noch WhatsApp-Nachrichten mit ihm verbinden.
Ich empfehle die Verwendung von ngrok um eingehende WhatsApp-Nachrichten lokal von der Vonage Messages API zu empfangen. Sie können es starten, indem Sie ngrok http 5000 - ausführen, was eine Basis-URL für Sie erzeugt. Ihre App wird die Nachrichten auf BASE_URL/webhooks/inbound-messagesempfangen, also verwenden Sie diese URL beim Einrichten der Messages API Sandbox.
Damit können Sie sich nun selbst Nachrichten schicken. Wenn ich also in WhatsApp gehe und der Nachrichten-Sandbox einen Kaffee-Aufkleber schicke:

Meine App wird sie empfangen und die Nachricht ausdrucken: Received an unsupported message from WHATSAPP_NUMBER.
Andernfalls wird der Inhalt der Nachricht gedruckt.

Ressourcen
Wenn Sie lernen möchten, wie man eine WhatsApp-Nachricht versendet - es gibt eine tolle Erläuterung von Garann Means
Wenn Sie an der Verwendung der Messages API im Allgemeinen interessiert sind, finden Sie auf unserer docs-Website eine Vielzahl von Inhalten und Erklärungen, die Ihnen den Einstieg in die Nutzung erleichtern.
Den Code für diesen Blogbeitrag finden Sie auf GitHub