Benutzerdefinierte Objekte
Die Messages API verfügt über das Konzept eines benutzerdefinierten Objekts. Das benutzerdefinierte Objekt ermöglicht es Ihnen, erweiterte Funktionen der unterstützten Messaging-Plattformen wie Facebook Messenger, WhatsApp und Viber zu nutzen.
Das benutzerdefinierte Objekt übernimmt einen Teil des API-Anfrageformats der zugrunde liegenden Messaging-Plattform und sendet es direkt an diese Plattform.
Nehmen wir WhatsApp als Beispiel für den folgenden Messages API-Aufruf:
{
"to": "447700900000",
"from": "447700900001",
"channel": "whatsapp",
"message_type": "custom",
"custom": {$CUSTOM_OBJECT}
}
Vonage würde folgendes an WhatsApp senden:
{
"recipient_type": "individual",
"to": "$TO_NUMBER",
{$CUSTOM_OBJECT}
}
Das JSON in CUSTOM_OBJECT hängt vom Format der Mitteilungsplattform für die Art der Anfrage ab, die Sie stellen möchten.
Wenn die WhatsApp-Anfrage lautete:
{
"recipient_type": "individual",
"to": "447700900000",
"type": "template",
"template": {
"namespace": "whatsapp:hsm:technology:nexmo",
"name": "parcel_location",
"language": {
"policy": "deterministic",
"code": "en"
},
"components": [
{
"type": "location",
"location": {
"longitude": -122.425332,
"latitude": 37.758056,
"name": "Facebook HQ",
"address": "1 Hacker Way, Menlo Park, CA 94025"
}
},
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "Value 1"
},
{
"type": "text",
"text": "Value 2"
},
{
"type": "text",
"text": "Value 3"
}
]
}
]
}
}
Das Format der Messages-API-Anforderung wäre wie folgt:
{
"to": "447700900000",
"from": "447700900001",
"channel": "whatsapp",
"message_type": "custom",
"custom": {
"type": "template",
"template": {
"namespace": "whatsapp:hsm:technology:nexmo",
"name": "parcel_location",
"language": {
"policy": "deterministic",
"code": "en"
},
"components": [
{
"type": "header",
"parameters": [
{
"type": "location",
"location": {
"longitude": -122.425332,
"latitude": 37.758056,
"name": "Facebook HQ",
"address": "1 Hacker Way, Menlo Park, CA 94025"
}
}
]
},
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "Value 1"
},
{
"type": "text",
"text": "Value 2"
},
{
"type": "text",
"text": "Value 3"
}
]
}
]
}
}
}
Das benutzerdefinierte Objekt, CUSTOM_OBJECTist im ursprünglichen Anfrageformat definiert:
"type": "template",
"template": {
"namespace": "whatsapp:hsm:technology:nexmo",
"name": "parcel_location",
"language": {
"policy": "deterministic",
"code": "en"
},
"components": [
{
"type": "location",
"location": {
"longitude": -122.425332,
"latitude": 37.758056,
"name": "Facebook HQ",
"address": "1 Hacker Way, Menlo Park, CA 94025"
}
},
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "Value 1"
},
{
"type": "text",
"text": "Value 2"
}
]
}
]
}
Beachten Sie, dass bei Verwendung benutzerdefinierter ObjekteDas Format für Eigenschaften wie den Sprachcode muss mit dem der Zielplattform übereinstimmen. Im zugrundeliegenden WhatsApp-Nachrichtenformat haben die Sprachcodes zum Beispiel die Form en_GB, nicht en-GB.
Vorlagen für Facebook Messenger-Nachrichten
Sie können benutzerdefinierte Objekte für das Senden von Facebook Messenger-Nachrichtenvorlagen verwenden. Zum Beispiel:
{
"to": $FB_RECIPIENT_ID,
"from": $FB_SENDER_ID,
"channel": "messenger",
"message_type": "custom",
"custom": {$CUSTOM_OBJECT}
}
Die Messages API-Nachricht würde in etwas Ähnliches wie das Folgende umgewandelt werden:
{
"recipient":{
"id":"<PSID>"
},
"message":{
$CUSTOM_OBJECT
}
}
Wo das benutzerdefinierte Objekt, $CUSTOM_OBJECTkann alles sein, was sich innerhalb der Messenger Message Objekt.