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.

Siehe weitere Beispiele