https://d226lax1qjow5r.cloudfront.net/blog/blogposts/send-a-viber-message-with-node-dr/Blog_Viber_Node-js_1200x600.png

Cómo enviar un mensaje de Viber con Node.js

Publicado el April 29, 2021

Tiempo de lectura: 2 minutos

Si usted o sus clientes se encuentran en un país en el que Viber es la plataforma de mensajería por defecto, querrá que su organización también pueda comunicarse utilizando el servicio. Puede que realice el trabajo principal a través de mensajes de texto o que simplemente desee enviar notificaciones. Sea cual sea la complejidad, puede añadir la comunicación Viber a su aplicación Node.js. Para ver cómo funciona sin solicitar un perfil de empresa de Viberpuede utilizar Viber sandbox de Vonage.

Requisitos previos

Para este ejemplo, se utilizará el programa ligero axios para realizar una solicitud POST. Obtendrás acceso a todo lo demás que necesites desde la Messages API, a través del sandbox. Así que para empezar, sólo necesitas:

  • Node y npm

  • Una lista blanca de Viber para probarlo

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.

Configure su Sandbox

Si aún no lo ha hecho, vaya a Mensajes y Despacho > Sandbox en su panel de control para configurar su sandbox. La forma más rápida es coger su dispositivo con Viber instalado y centrar la cámara en el código QR suministrado. Al enviar el mensaje personalizado generado se incluirá su número en la lista blanca. Si el código QR no funciona con su configuración, también puede unirse a la lista blanca por correo electrónico.

Configurar Axios

Puedes utilizar axios prácticamente desde el principio, pero tendrás que instalarlo. Crea un archivo llamado app.js en un directorio nuevo o en un directorio que utilices para experimentos. En el mismo directorio, instala axios:

> npm install axios -s

Comience su código en app.js creando un cliente axios:

const axios = require('axios');

Facilite sus datos

Los datos que necesita proporcionar son visibles en el comando cURL de su panel de control. Necesitará un nombre de usuario y una contraseña, el ID de Viber desde el que enviar el mensaje y el número de la lista blanca al que enviar el mensaje.

Puede copiar el nombre de usuario y la contraseña del valor enmascarado siguiendo la -u bandera. Es posible que los reconozca como su clave y secreto de API, y también puede copiarlos de la página Introducción en el panel de control. El ID de origen también se muestra en el comando cURL, y el número de destino es su propio número de la lista blanca:

var user = '12ab3456';
var password = '123AbcdefghIJklM';
var from_id = `12345`;
var to_num = '441234567890';

Para que no sólo envíes texto estático, puedes añadir el día de la semana a tu mensaje. Crea algunas variables para almacenarlo y utilizarlo en tus datos. O, mejor aún, sustituye algunos datos dinámicos de tu propio caso de uso o aplicación:

const weekdays = [
  'Sunday',
  'Monday',
  'Tuesday',
  'Wednesday',
  'Thursday',
  'Friday',
  'Saturday'
];
var today = weekdays[new Date().getDay()];

Hacer la solicitud

Axios proporcionará la configuración predeterminada para tu solicitud POST si proporcionas la URL y los datos. El objeto de datos son los mismos datos del comando cURL en el tablero. Si quieres enviar un mensaje de prueba que sea más relevante para tu caso de uso, puedes cambiarlo en línea. También puedes proporcionar un objeto de opciones, que contendrá tus credenciales de autorización.

Una vez completada la petición, la siguiente llamada de retorno recibirá la respuesta. A partir de ahí se puede comprobar el código de estado y cualquier dato que regresó. En este caso, deberías obtener un UUID del mensaje. También puedes capturar cualquier error que pueda ocurrir y registrarlo en la consola:

axios.post('https://messages-sandbox.nexmo.com/v0.1/messages',{
    "from": { "type": "viber_service_msg", "id": from_id },
    "to": { "type": "viber_service_msg", "number": to_num },
    "message": {
      "content": {
        "type": "text",
        "text": "Hello from Vonage! Happy " + today
      }
    }
  },{
    auth: {
      username: user,
      password: password
    }
  })
  .then(function (response) {
    console.log('Status: ' + response.status);
    console.log(response.data);
  })
  .catch(function (error) {
    console.error(error);
  });

Pruébelo

Desde el directorio donde creaste tu archivo, ejecuta:

> node app.js

Debería recibir su mensaje de prueba en Viber en el dispositivo que ha incluido en la lista blanca. Para ver todo el ejemplo junto, puedes consultar el código en Github.

Compartir:

https://a.storyblok.com/f/270183/250x250/f231d97f1b/garann-means.png
Garann MeansDesarrollador Educador

Soy desarrollador de JavaScript y educador de desarrolladores en Vonage. A lo largo de los años me han entusiasmado las plantillas, Node.js, las aplicaciones web progresivas y las estrategias offline-first, pero lo que siempre me ha encantado es una API útil y bien documentada. Mi objetivo es hacer que tu experiencia usando nuestras APIs sea la mejor posible.