Objets personnalisés

L'API Messages comporte le concept d'objet personnalisé. L'objet personnalisé vous permet d'exploiter les fonctionnalités avancées des plateformes de messagerie prises en charge, telles que Facebook Messenger, WhatsApp et Viber.

L'objet personnalisé reprend une partie du format de requête de l'API de la plateforme de messagerie sous-jacente et l'envoie directement à cette plateforme.

En utilisant WhatsApp à titre d'exemple, pour l'appel API Messages suivant :

{
  "to": "447700900000",
  "from": "447700900001",
  "channel": "whatsapp",
  "message_type": "custom",
  "custom": {$CUSTOM_OBJECT}
}

Vonage enverrait les informations suivantes à WhatsApp :

{
  "recipient_type": "individual",
  "to": "$TO_NUMBER",
  {$CUSTOM_OBJECT}
}

Le JSON dans CUSTOM_OBJECT dépend du format de la plateforme de messagerie pour le type de demande que vous souhaitez faire.

Si la demande WhatsApp était :

{
  "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"
          }
        ]
      }
    ]
  }
}

Le format de la demande de Messages API serait le suivant :

{
  "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"
            }
          ]
        }
      ]
    }
  }
}

L'objet personnalisé, CUSTOM_OBJECTLe format de la demande initiale est le suivant :

  "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"
          }
        ]
      }
    ]
  }

Il convient de noter que lors de l'utilisation d'objets personnalisésLe format des propriétés telles que le code de langue doit correspondre à celui de la plateforme cible. Par exemple, dans le format de message WhatsApp sous-jacent, les codes de langue se présentent sous la forme suivante en_GB, pas en-GB.

Modèles de messages Facebook Messenger

Vous pouvez utiliser des objets personnalisés pour envoyer des modèles de messages Facebook Messenger. Par exemple, vous pouvez utiliser des objets personnalisés pour envoyer des modèles de messages Facebook Messenger :

{
  "to": $FB_RECIPIENT_ID,
  "from": $FB_SENDER_ID,
  "channel": "messenger",
  "message_type": "custom",
  "custom": {$CUSTOM_OBJECT}
}

Le message de l'API Messages serait transformé en quelque chose de similaire à ce qui suit :

{
  "recipient":{
    "id":"<PSID>"
  },
  "message":{
    $CUSTOM_OBJECT
  }
}

Où se trouve l'objet personnalisé, $CUSTOM_OBJECTIl peut s'agir de tout ce qui se trouve à l'intérieur du Objet du message du messager.

Voir d'autres exemples