https://d226lax1qjow5r.cloudfront.net/blog/blogposts/how-to-send-mms-with-node-js-dr/node_js_mms.png

Cómo enviar mensajes MMS con Node.js

Publicado el August 30, 2023

Tiempo de lectura: 4 minutos

La API Messages API de Vonage ahora te permite enviar MMS (servicio de mensajería multimedia) desde US 10DLCTFN y Shortcode que tienes en tu panel a otros números dentro de los Estados Unidos.

En este artículo, aprenderás a enviar un MMS con Node.js utilizando la aplicación oficial vonage-node-sdk de vonage.

Requisitos previos

Antes de empezar, asegúrate de tener lo siguiente:

  • Conocimientos básicos de JavaScript y Node.js.

  • Node.js instalado en su máquina.

  • Un nuevo número con capacidad para SMS y MMS en EE.UU. Puede consultar nuestra Guía de Numbers para saber cómo comprar un número si aún no lo tienes.

Nota: La mensajería MMS sólo funciona para casos de uso A2P (aplicación a persona). La API Messages de Vonage no se puede usar para enviar mensajes MMS de un número virtual a otro número virtual.

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

This tutorial also uses a virtual phone number. To purchase one, go to Numbers > Buy Numbers and search for one that meets your needs.

Primeros pasos

Antes de comenzar, preparémonos para el éxito ocupándonos de algunas cosas dentro del panel de Vonage.

Empecemos por crear una nueva Aplicación de Mensajes. Para ello, dirígete a la sección Aplicaciones de tu panel de administración y haz clic en Crear una nueva aplicación.

Your Applications page containing a purple button to create a new applicationYour applications page

A continuación, deberá rellenar el formulario con el nombre de su aplicación y las URL de los webhooks necesarios.

Cada aplicación de Mensajes requiere que especifique un Status URL y un Inbound URL. En aplicaciones más grandes, listas para producción, estos apuntarán a una URL en su propio servidor.

No hay necesidad de eso en este tutorial; necesitará una URL que pueda responder con un 200 OK estado. Puedes usar un servicio como MockBin o ngrok para proporcionar lo que necesitas.

Para utilizar MockBin en este ejemplo, puede:

  1. Ir al MockBin y haz clic en el botón verde que dice "Create Bin".

  2. En el Bin Builder, deje la información pre-rellenada por defecto que dice Status Code 200 OK, y en la parte inferior, haga click en Create Bin.

  3. Esto generará una URL similar a https://mockbin.org/bin/2f27d0d5-6f2e-4a39-8dd5-918c4848a4c7/view. Copia la URL hasta antes de /view y pégala en el panel de Vonage bajo la capacidad de mensajes en URL de entrada y URL de estado como se muestra en la imagen a continuación.

Messages capability showing inbound and status URLs using MockBinMessage capability with added URLs

Para autenticar las solicitudes de API junto con su clave y secreto de API, también necesitará un par de claves pública/privada, que puede generarse automáticamente haciendo clic en el botón Generar par de claves pública/privada como se muestra en la siguiente imagen.

Generate Public and Private KeyGenerate Public and Private Key

Esto establecerá una clave pública en el campo del formulario y también descargará un archivo private.key a su máquina. Tendrás que poner este archivo en el directorio que crearemos en breve.

Termine haciendo clic en Crear una nueva aplicación. A continuación, se le pedirá que seleccione un número para utilizar con esta solicitud haciendo clic en el botón Enlace junto al número que elija. Si no tienes ningún número en tu panel de control, puedes comprarlos allí o a través de la línea de comandos usando el comando CLI de Vonage.

Anote el ID de aplicación. Se unirá a su clave de API, API Secret y Private Key en el código que vamos a trabajar a continuación.

Envío de MMS con Node.js

Ahora que el admin está completo, creemos un script Node.js que utilizará el SDK del servidor de Vonage para Node.js para enviar un MMS a un número preestablecido cuando se ejecute.

Comience por crear una nueva carpeta (y si aún no lo ha hecho, coloque en ella el archivo private.key generado anteriormente.

Desde el terminal, ejecuta los siguientes comandos para configurar una nueva aplicación Node.js e instalar la librería de cliente vonage-node dentro de una nueva carpeta para tu proyecto.

npm init -y
npm install -g @vonage/cli

A continuación, cree un nuevo archivo llamado send-mms.jsy ábrelo en tu editor.

Inicializa una nueva instancia de Vonage:

const { Messages, MMSImage } = require("@vonage/messages");

const messageClient = new Messages({
  apiKey: VONAGE_API_KEY, // Found in your Vonage Dashboard
  apiSecret: VONAGE_API_SECRET, // Found in your Vonage Dashboard
  applicationId: VONAGE_APPLICATION_ID, // Generated earlier
  privateKey: VONAGE_APPLICATION_PRIVATE_KEY_PATH // Generated earlier it could be e.g. ./private.key
});

Por último, añade el código para enviar el mensaje MMS utilizando la Messages API:

const image = new MMSImage({
  image: {
    url: "https://placekitten.com/200/30",
    caption: "placeholder image"
  },
  to: "TO_NUMBER", // Add the phone number sending the message
  from: "FROM_NUMBER", // Add the phone number receiving the nmessage
});

messageClient
  .send(image)
  .then((resp) => console.log(resp))
  .catch((err) => console.error(error));

El código anterior envía un único mensaje (una imagen de un gato) a cualquier número que añada al primer objeto. Si, por alguna razón, hay un fallo en el envío del mensaje, los problemas se registrarán en la consola; de lo contrario, si todo funciona como debería, entonces se registrará el mensaje messageUUID en su lugar.

Notas:

  1. 'https://placekitten.com/200/300' es una imagen de marcador de posición que puedes utilizar.

  2. El valor de url tiene que ser una URL de acceso público que resuelva a un archivo.

  3. Los tipos de archivo admitidos son.jpg, .jpegy .png.

Una vez hecho esto, dirígete al terminal de tu elección y ejecútalo:

node send-mms.js

¿Qué hacer a partir de ahora?

A veces, por diversas razones, un mensaje MMS puede no ser entregado a un destinatario, por lo que, como siguiente paso de este proyecto, puede experimentar con nuestra Dispatch API y crear un mecanismo de conmutación por error que compruebe si se ha entregado el MMS y, en caso contrario, tu aplicación envíe un mensaje SMS estándar con un enlace a la imagen que querías incluir.

Háganos saber lo que está construyendo con MMS

Únete a la conversación en nuestro Slack de la comunidad de Vonage o envíanos un mensaje en X, antes conocido como Twitter.

Compartir:

https://a.storyblok.com/f/270183/400x400/3f6b0c045f/amanda-cavallaro.png
Amanda CavallaroDefensor del Desarrollador