Contenido del curso

Avances y Personalización

Enviar audio, video e imagen por WhatsApp API

Resumen

Enviar archivos multimedia con la API de WhatsApp te permite construir bots conversacionales más dinámicos y cercanos. En lugar de solo texto, puedes integrar audios, imágenes, videos y documentos PDF dentro del flujo de tu aplicación, haciendo que la conversación se sienta natural y mucho más útil para el usuario.

¿Qué tipos de archivos multimedia soporta la API de WhatsApp?

La API Reference, dentro de su sección de messages, expone varios formatos que puedes enviar como parte del flujo conversacional [1:32].

  • Imágenes por URL o por ID.
  • Audios pregrabados alojados en la nube.
  • Videos con un mensaje opcional de acompañamiento.
  • Documentos PDF con nombre personalizado.
  • Stickers y vistas previas de URL.

Cada formato tiene su propia estructura, pero todas comparten un patrón común: defines el campo type y luego un objeto con el mismo nombre que contiene un link hacia el recurso almacenado.

¿Qué necesito para enviar un audio por WhatsApp con la API? Necesitas que el archivo esté alojado en la nube con una URL pública. En el cuerpo de la petición defines type: "audio" y dentro del objeto audio pasas el link con la ruta del recurso.

La documentación también detalla límites de tamaño en megas y formatos válidos, por lo que conviene revisarla antes de enviar archivos pesados o poco comunes [2:45].

¿Cómo construir un servicio que envíe medios según el tipo?

Dentro del archivo WhatsApp Service puedes crear una función sendMediaMessage que reciba el destinatario, el tipo de mensaje, la URL del medio y un caption opcional. Lo importante es que cada tipo arma su propio objeto antes de llegar a la llamada con Axios.

¿Por qué usar un switch para diferenciar el tipo de medio?

Aunque las estructuras se parecen, cada formato pide campos distintos. Un switch te permite preparar la variable mediaObject con exactamente lo que la API espera para cada caso.

  • image: objeto con link y caption.
  • audio: objeto con solo link, sin caption.
  • video: objeto con link y caption.
  • document: objeto con link, caption y filename, por ejemplo MedPet.pdf.

En el default del switch conviene lanzar new Error("No es soportado: media type") para cubrir cualquier caso que no esté contemplado [7:55]. Aunque el usuario nunca podrá disparar este envío directamente, manejar excepciones es parte de un código robusto.

¿Cómo se conecta el switch con la llamada Axios?

Una vez que mediaObject está armado, lo desestructuras dentro del cuerpo de la petición junto con el resto de campos fijos.

  • messaging_product: siempre "whatsapp".
  • to: el número del destinatario.
  • type: el tipo recibido como parámetro.
  • ...mediaObject: los campos específicos según el formato.

Envolver todo en un bloque try/catch te permite capturar errores con console.error("Error sending media", error) y rastrear qué falló durante el desarrollo [9:30].

¿Qué diferencia tiene enviar un documento frente a una imagen? El documento acepta el campo filename, que define cómo se mostrará el archivo al usuario, por ejemplo MedPet.pdf. La imagen no requiere ese atributo.

¿Qué viene después de tener el servicio listo?

Con sendMediaMessage funcionando, el siguiente paso es definir el trigger: el evento dentro del flujo conversacional que desencadena el envío del audio, la imagen, el video o el PDF. Ese disparador es el que conecta la lógica del bot con la nueva capacidad multimedia.

Mientras tanto, te recomiendo explorar la documentación oficial sobre audio by ID y URLs firmadas para entender qué opción se ajusta mejor a tu caso de uso. ¿Qué tipo de archivo vas a integrar primero en tu bot? Cuéntame en los comentarios.