Objetos personalizados

La Messages API tiene el concepto de objeto personalizado. El objeto personalizado permite aprovechar las funciones avanzadas de las plataformas de mensajería compatibles, como Facebook Messenger, WhatsApp y Viber.

El objeto personalizado toma una sección parcial del formato de solicitud de la API de la plataforma de mensajería subyacente y la envía directamente a dicha plataforma.

Utilizando WhatsApp a modo de ejemplo, para la siguiente llamada a Messages API:

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

Vonage enviaría lo siguiente a WhatsApp:

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

El JSON en CUSTOM_OBJECT depende del formato de la plataforma de mensajería para el tipo de solicitud que quieras realizar.

Si la solicitud de WhatsApp era:

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

El formato de solicitud de la API de Messages sería:

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

El objeto personalizado, CUSTOM_OBJECTdefinido en el formato de solicitud original es:

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

Tenga en cuenta que al utilizar objetos personalizadosEl formato de propiedades como el código de idioma debe coincidir con el de la plataforma de destino. Por ejemplo, en el formato subyacente de los mensajes de WhatsApp, los códigos de idioma tienen la forma en_GBno en-GB.

Plantillas de mensajes de Facebook Messenger

Puedes utilizar objetos personalizados para enviar plantillas de mensajes de Facebook Messenger. Por ejemplo

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

El mensaje de la Messages API se transformaría en algo similar a lo siguiente:

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

Donde el objeto personalizado, $CUSTOM_OBJECTpuede ser cualquier cosa dentro del Objeto de mensaje de mensajería.

Ver más ejemplos