Enviar una plantilla de mensaje multimedia de WhatsApp

En este fragmento de código aprenderá a enviar una plantilla de mensaje multimedia de WhatsApp utilizando la Messages API.

Para enviar la plantilla de mensajes multimedia, debe utilizar el objeto personalizado Mensajes. El objeto personalizado toma una sección parcial de la solicitud original de la API de WhatsApp y la envía directamente a WhatsApp.

IMPORTANTE: Si un cliente le envía un mensaje, dispone de 24 horas para responderle con un mensaje de formulario libre. Transcurrido este plazo, deberá utilizar un mensaje de plantilla (MTM). Si un cliente no le ha enviado un mensaje primero, la primera vez que envíe un mensaje a un usuario, WhatsApp requerirá que el mensaje contenga una plantilla. Esto se explica con más detalle en la sección Entender el tema de WhatsApp.

Restricciones de formato y longitud de los mensajes

Las plantillas de mensajes multimedia de WhatsApp constan de una estructura de encabezado, cuerpo y pie de página. El Encabezado contiene los medios, que pueden ser texto, ubicación, vídeo, imagen o archivo. El cuerpo contiene el mensaje de texto. Actualmente se limita a 1024 caracteres cuando se muestra al usuario final, para evitar la necesidad de desplazarse. El pie de página es opcional y sólo contiene texto estático.

NOTA: Actualmente, la longitud del encabezado y del pie de página está limitada a 60 caracteres cada uno y la longitud del cuerpo del mensaje está limitada a 1024 caracteres.

Ejemplo

A continuación encontrará la descripción de todas las variables utilizadas en cada fragmento de código:

ClaveDescripción
VONAGE_APPLICATION_ID

The Vonage Application ID.

VONAGE_APPLICATION_PRIVATE_KEY_PATH

Private key path.

BASE_URL

For production use the base URL is https://api.nexmo.com/. For sandbox testing the base URL is https://messages-sandbox.nexmo.com/.

MESSAGES_API_URL

There are two versions of the API, each with their own endpoints. For production the previous Messages API endpoint was https://api.nexmo.com/v0.1/messages, the new one is https://api.nexmo.com/v1/messages. For sandbox testing the Messages API endpoint is https://messages-sandbox.nexmo.com/v0.1/messages or https://messages-sandbox.nexmo.com/v1/messages, depending on which version you have set in the sandbox dashboard.

WHATSAPP_NUMBER

The WhatsApp number that has been allocated to you by Vonage. For sandbox testing the number is 14157386102.

VONAGE_WHATSAPP_NUMBER

Refer to WHATSAPP_NUMBER above.

VONAGE_NUMBER

Refer to WHATSAPP_NUMBER above.

TO_NUMBER

Replace with the number you are sending to. E.g. 447700900001

WHATSAPP_TEMPLATE_NAME

The name of the template created in your WhatsApp Business Account.

IMAGE_URL

The link to the image file to send.

WHATSAPP_TEMPLATE_REPLACEMENT_TEXT

Text to populate place-holders in a WhatsApp template message.

NOTA: No utilice un + o 00 cuando introduzca un número de teléfono, empiece por el prefijo del país, por ejemplo, 447700900000.

Requisitos previos

Si no tiene una solicitud, puede crear uno. Asegúrese también de configure sus webhooks.

Escriba el código

Añada lo siguiente a send-media-mtm.sh:

curl -X POST "${MESSAGES_API_URL}" \
  -H "Authorization: Bearer "$JWT\
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d $'{
    "to": "'${MESSAGES_TO_NUMBER}'",
    "from": "'${WHATSAPP_SENDER_ID}'",
    "channel": "whatsapp",
    "message_type": "custom",
    "custom": {
      "type": "template",
      "template": {
        "name": "'${WHATSAPP_TEMPLATE_NAME}'",
        "language": {
          "policy": "deterministic",
          "code": "en"
        },
        "components": [
          {
            "type": "header",
            "parameters": [
              {
                "type": "image",
                "image": {
                  "link": "'${MESSAGES_IMAGE_URL}'"
                }
              }
            ]
          },
          {
            "type": "body",
            "parameters": [
              {
                "type": "text",
                "text": "Joe Bloggs"
              },
              {
                "type": "text",
                "text": "AB123456"
              }
            ]
          }
        ]
      }
    }
  }'

Ver fuente completa

Ejecute su código

Guarde este archivo en su máquina y ejecútelo:

bash send-media-mtm.sh

Pruébalo

Al ejecutar el código, se envía una plantilla de mensaje multimedia de WhatsApp al número de destino.

Para más información