Enviar mensajes multimedia

Usa el nodo messages para enviar a los clientes mensajes que contengan audio, documentos, imágenes, stickers o videos.

Básicamente, cuando envías un mensaje que incluye contenido multimedia, debes proporcionar en el cuerpo de la solicitud el identificador del contenido multimedia que se subió o un enlace al contenido multimedia. Además, debes especificar el tipo de contenido multimedia que estás enviando: audio, image, document, sticker o video. Cuando se recibe la solicitud, el contenido multimedia se sube al servidor de WhatsApp y se envía al usuario indicado en el campo to.

En este momento, existen dos formas de enviar mensajes multimedia con la API de WhatsApp Business:

  • Identificadores: si quieres usar un identificador, primero debes subir el contenido multimedia con el nodo media a fin de obtener el identificador que hace falta para la llamada a la API messages.
  • Enlaces: si quieres usar un enlace, debes suministrar un enlace HTTP(S) que la app usará para descargar el contenido multimedia, lo que te ahorra el paso de subir este contenido por tu cuenta.

Antes de empezar

Necesitas lo siguiente:

Paso 1: Haz una solicitud POST a /messages

Una vez que hayas subido el contenido multimedia, usa el identificador devuelto para el campo id en la llamada a la API que envía el mensaje multimedia. También puedes proporcionar un parámetro link que apunte al contenido multimedia que quieres enviar (por el momento, solo se admiten enlaces HTTP y HTTPS).

El parámetro id o link es obligatorio y no es posible usar ambos al mismo tiempo.

Ejemplo

En el ejemplo anterior, se muestran distintos objetos, como audio, document, image, sticker y video, solo con fines ilustrativos. Un cuerpo de solicitud válido contiene solo uno de esos objetos.

POST /v1/messages
{
  "recipient_type": "individual",
  "to": "whatsapp-id",
  "type": "audio" | "contact" | "document" | "image" | "location" | "sticker" | "text" | "video",
  
  "audio": {
    "id": "your-media-id"
  }
  
  "document": {
    "id": "your-media-id",
    "filename": "your-document-filename"
  }
  
  "document": {
    "link": "the-provider-name/protocol://the-url",
    "provider": {
        "name" : "provider-name"
    }
  }
  
  "document": {
    "link": "http(s)://the-url.pdf"
  }
  
  "video": {
    "id": "your-media-id"  
  }
  
  "image": {
    "link": "http(s)://the-url",
    "provider": {
        "name" : "provider-name"
    }
  }
  
  "image": {
    "id": "your-media-id"   
  }
  
  "sticker": {
    "id": "your-media-id"
  }
  
  "sticker": {
    "link": "http(s)://the-url",
    "provider": {
      "name" : "provider-name"
    }
  }
}

Para obtener más información sobre los parámetros, consulta lo siguiente:

Paso 2: Verifica la respuesta

Una respuesta exitosa incluye un objeto messages con un identificador de mensaje.

{
  "messages": [{
    "id": "gBEGkYiEB1VXAglK1ZEqA1YKPrU"
  }]
}  

Si la respuesta no funciona correctamente, se envía una devolución de llamada a tu URL del webhook, aunque la respuesta arrojará un identificador de mensaje similar al envío correcto de un mensaje. Por eso es importante configurar un servidor de Webhook.

Para obtener más información sobre errores, consulta Códigos de error y de estado.