
Compartir:
Julia está comprometida con la capacitación de los desarrolladores mediante la creación de tutoriales, guías y recursos prácticos. Con experiencia en divulgación y educación, su objetivo es hacer que la tecnología sea más accesible y mejorar la experiencia general de los desarrolladores. A menudo se la puede encontrar en eventos de la comunidad local.
Cómo enviar mensajes SMS con Node-RED
Tiempo de lectura: 8 minutos
Nota: Es posible que algunas de las herramientas o métodos descritos en este artículo ya no reciban soporte o no estén actualizados. Para obtener contenido actualizado o soporte, consulta nuestras últimas publicaciones o contáctanos en el Slack de la comunidad de Vonage
Este es el primer artículo de una serie de tutoriales "Primeros pasos con Vonage y Node-RED".
La API SMS API te permite enviar y recibir SMS en todo el mundo, mediante una simple API basada en HTTP.
La buena noticia es que interactuar con esta API -y con muchas otras- es ahora más fácil gracias a la incorporación de los nodos Nexmo a la paleta Node-RED.
En este artículo, aprenderá a enviar mensajes SMS con Node-RED. Obtenga este flujo de la Biblioteca Node-RED o síguelo.
Requisitos previos
Antes de empezar, necesitarás algunas cosas:
ngrok - póngase al día con Aaron's blog post
Obtener sus credenciales
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.
Mientras que en algunos países puedes enviar un SMS sin alquilar un número de Vonage, otros países como EE. UU. te exigirán que seas el propietario del número desde el que se originan tus mensajes SMS.
Configuración del editor Node-RED
En primer lugar, tendrá que instalar el tiempo de ejecución y el editor. Esto puede hacerse en tu máquina local, en un ordenador de placa única (por ejemplo, Raspberry Pi), o en una serie de opciones alojadas en la nube. Este ejemplo utilizará tu máquina local, así que una vez que hayas instalado Node-RED globalmente, simplemente escribe el siguiente comando en tu terminal para empezar.
A continuación, puede acceder al editor Node-RED dirigiendo su navegador a http://localhost:1880.
Una vez que tengas tu editor abierto, necesitarás instalar los nodos Nexmo. Puedes hacerlo en la Gestionar paleta buscando el paquete node-red-contrib-nexmo y haciendo clic en instalar.
Install the Nexmo Node-RED package
Ahora debería ver todos los nodos Nexmo aparecer en la parte izquierda de su pantalla, entre los nodos por defecto.
Enviar un SMS con Node-RED
Desplácese hasta el nodo sendsms y arrástrelo a su espacio de trabajo. Esto hará el trabajo pesado en el tutorial de hoy.
Puede configurar este nodo haciendo doble clic sobre él y rellenando los parámetros que aparecen a continuación. Encontrará API KEY y API SECRET haciendo clic en el botón de edición situado junto a Nexmo Credentials.
CLAVE
DESCRIPCIÓN
API KEY
Su clave API, que aparece en su resumen de cuenta.
API SECRET
Su secreto de API, que aparece en su resumen de cuenta.
TO
El número al que envía el SMS en formato E.164. Por ejemplo 447401234567.
FROM
El número o texto que aparece en un terminal cuando muestra su mensaje. Puede configurar un FROM alfanumérico personalizado para representar mejor su marca, si esta función está en su país..
TEXT
El contenido del mensaje. Siéntete libre de ser creativo, pero un "¡Hola mundo!" servirá igualmente.
A continuación, añada un nodo inject al flujo y conéctalo como entrada para sendsms.
Es bastante potente, puede iniciar el flujo con un valor de carga útil específico. Admite la inyección de cadenas, Numbers, booleanos, objetos JavaScript o valores de flujo/contexto global, teniendo como valor predeterminado la marca de tiempo de la hora actual en milisegundos desde el 1 de enero de 1970.
Puede utilizarlo simplemente para activar su flujo, codificando todos los parámetros en el nodo sendsms o ir un paso más allá.
Junto al TO,FROM y TEXT hay un signo {} lo que significa que plantillas Mustache para esos campos. Esto resulta útil cuando se pasan ciertos valores dinámicamente al nodo sendsms nodo.
Sabiendo que se inyecta la marca de tiempo, añadamos este valor al texto del mensaje haciendo referencia a {{msg.payload}}por ejemplo:
Hello World! The timestamp is `{{msg.payload}}`.Para tener una idea más clara de lo que ocurre cuando envías un SMS, introduce la salida sendsmsen un nodo debug nodo. Haz doble clic en él y establece el parámetro Output a complete msg object.
Visite Despliegue y haz clic en el botón inject tu SMS debería estar en camino.
Sending an SMS in Node-RED
Cuando realizas una solicitud a la SMS API, ésta devuelve una matriz de objetos de mensaje. Lo ideal es que cada uno de ellos tenga un `status` de `0`, lo que indica que el mensaje se ha programado correctamente para su envío, y algunos otros detalles como el número de destinatario, el ID del mensaje, el saldo restante, el precio y la red de operador que se utilizará para enviar el SMS.
Puede echar un vistazo a este objeto de respuesta en el área de depuración en la parte derecha de su editor Node-RED.
Aunque inspeccionar esta salida es bastante útil para determinar lo que hizo la SMS API, no hay garantía de que el mensaje haya llegado al terminal del destinatario.
Cuando se entrega el mensaje, el operador de telefonía móvil devuelve un recibo de entrega a Vonage. Este contendrá el estado de la entrega.
Recibir un albarán de entrega de un transportista móvil
Para conocer el status de tu mensaje saliente, tendrás que configurar un punto final webhook al que Vonage pueda reenviar el Recibo de entrega a.
Definición de un punto final Webhook
En primer lugar, conecte un http nodo de entrada a un nodo http response así como a un nodo debug nodo, para que pueda ver su recibo de entrega en el área de depuración.
En el nodo http nodo de entrada, seleccione POST como Method y rellene el campo URL con algo como /receipt. El nodo http response debe tener 200 como Status codepero no te preocupes, este es también el valor por defecto.
Setting up a webhook for delivery receipts
Exponer su servidor local a Internet
Luego tendrás que exponer tu servidor local a Internet, para que Vonage pueda acceder a él. Una forma conveniente de hacerlo es utilizando un servicio de tunelización como ngrok.
Descargue e instale ngroky ejecútelo en el terminal para iniciar un túnel en el puerto 1880.
Starting an ngrok tunnel in a terminal window
Su servidor local tiene ahora una URL ngrok que se puede utilizar como su punto final webhook.
Configuración del punto final con Vonage
El último paso es informarle a la SMS API de Vonage a dónde debe reenviar los recibos de entrega. Puedes hacerlo en la Configuración de API en la sección Configuración predeterminada de SMS predeterminada.
Establezca la URL de webhook predeterminada para los recibos de entrega en YOUR_NGROK_URL/receipty, a continuación Save changes.
Delivery receipt endpoint URL in dashboard
Ahora, cuando vuelva a su editor Node-RED y envíe otro mensaje, verá aparecer el recibo de entrega en el área de depuración:
Delivery receipt in debug sidebar
En status y err-code indican que el mensaje se ha entregado correctamente. Obtenga más información sobre los mensajes de estado de recepción y los códigos de error en la documentación docs.
¿Y ahora qué?
Más información sobre Nexmo SMS API
Comprenda mejor recibos de entrega
Eche un vistazo a Node-RED
Compartir:
Julia está comprometida con la capacitación de los desarrolladores mediante la creación de tutoriales, guías y recursos prácticos. Con experiencia en divulgación y educación, su objetivo es hacer que la tecnología sea más accesible y mejorar la experiencia general de los desarrolladores. A menudo se la puede encontrar en eventos de la comunidad local.
