https://d226lax1qjow5r.cloudfront.net/blog/blogposts/create-a-balance-reminder-with-vonage-account-api-and-google-apps/balance-reminder_1200x600.png

Crea un recordatorio de saldo con la API de Vonage Account y Google Apps

Tiempo de lectura: 5 minutos

Como autónomo, he ayudado a un par de empresas locales de la India a implementar los productos de Vonage. Recientemente, uno de mis clientes me preguntó si podían recibir un email recordatorio cuando el saldo de Vonage estuviera por debajo de un límite especificado, ya que no querían entorpecer sus operaciones debido a un saldo insuficiente. Casi todos mis clientes usan Google Workspace, así que decidí crear una integración de Vonage y Google Apps Script para crear este flujo de trabajo.

Google Apps Script nos permite gestionar todas las aplicaciones de Google utilizando una plataforma en la nube. Lo mejor es que la autenticación está integrada en las plataformas y muchas empresas del mercado utilizan Google Workspace, antes conocido como G-Suite.

En esta publicación del blog, aprenderemos a crear notificaciones personalizadas cuando el saldo de nuestra Account de Vonage esté por debajo de un límite especificado. El post está dirigido a aquellos desarrolladores de Vonage que quieran administrar su base de clientes de manera efectiva enviándoles recordatorios sobre el saldo de la Account de Vonage.

Requisitos previos

  • Account Google - Necesitaremos una cuenta de Google - Personal o Google Workspace.

  • Cuenta API de Vonage - Necesitaremos una cuenta API de Vonage. Podemos inscribirnos hoy y comenzar a acumular crédito gratis. Una vez que tengamos una Account, podremos encontrar nuestra API Key y API Secret en la parte superior del Panel de la API de Vonage.

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.

Crear un proyecto de Google Apps Script

Empecemos creando nuestro primer proyecto Google Apps Script. Tenemos que dirigirnos a la Página de inicio de Google Apps Script y crear un nuevo proyecto. Una vez creado el nuevo proyecto, necesitamos darle un nombre para recordarlo. Llamaremos a nuestro proyecto Recordatorio de saldo de Vonage.

A New Google Apps Script

Comprobar el saldo

Empecemos por la parte más importante e interesante del proyecto.

Google Apps Script está escrito en JavaScript, por lo que incluso si tienes conocimientos básicos de JavaScript puedes empezar a utilizarlo.

Creemos una nueva función fetchBalancee intentemos conectarnos a la API REST de Vonage enviando una solicitud GET para consultar nuestro saldo. Necesitamos escribir el siguiente código en Code.gs archivo

function fetchBalance() {
  // get these credentials from Vonage's dashboard
  const apiKey = '--------' 
  const apiSecret = '----------------'

  // construct the api endpoint
  const url = `https://rest.nexmo.com/account/get-balance?api_key=${apiKey}&api_secret=${apiSecret}`
  
  // send a get request
  const response = UrlFetchApp.fetch(url, {'method': 'GET'})

  // discard the execution if status code is other than 200
  if (response.getResponseCode() !== 200) return

  // convert the response text into a json object
  const jsonResponse = JSON.parse(response.getContentText())

  // inspect the response
  Logger.log(jsonResponse)
}

Lo primero es lo primero. Antes de ejecutar el script anterior, necesitamos obtener nuestra clave API de Vonage y Secreto de API de Vonage. Ambos están disponibles en Panel de Vonage.

Vonage Dashboard for API Key and API Secret

Sustituya su conjunto de credenciales en el script anterior y ejecute la función fetchBalance función.

Cuando ejecutemos una función por primera vez, se nos pedirá que autoricemos la ejecución del script.

Review Permissions request for Google Apps Script

Se nos proporcionará una lista con todos los permisos necesarios para ejecutar el script.

List of Permissions for Google Apps Script

Una vez que hayamos autorizado nuestro proyecto de Google Apps Script, la función anterior se ejecutará y la respuesta de la API de la cuenta de Vonage se registrará en nuestra consola Logger.

API response logs

Para recuperar el saldo de la respuesta, añadamos las siguientes líneas de código a nuestra función:

// parse the response and extract the account balance
const currentBalance = jsonResponse.value

// inspect the balance
Logger.log(currentBalance)

Volvamos a ejecutar la función. Veremos que esta vez no se nos piden permisos y nuestra función se ejecutará directamente.

Vonage Account Balance from API response

Muy bien, ya tenemos el saldo de nuestra cuenta de Vonage.

Especificar límite de saldo

Lo siguiente que tenemos que hacer es enviar una alerta (en este caso, un correo electrónico) si nuestro saldo actual está por debajo del límite especificado. Para ello, tenemos que hacer algunos cambios en nuestro código:

function fetchBalance() {
  // get these credentials from Vonage's dashboard
  const apiKey = '--------' 
  const apiSecret = '----------------'

  const balanceLimit = 5 // in euros <- added

  // construct the api endpoint
  const url = `https://rest.nexmo.com/account/get-balance?api_key=${apiKey}&api_secret=${apiSecret}`
  
  // send a get request
  const response = UrlFetchApp.fetch(url, {'method': 'GET'})

  // discard the execution of the response status code is other than 200
  if (response.getResponseCode() !== 200) return

  // convert the json string into a json object
  const jsonResponse = JSON.parse(response.getContentText())

  // parse the response and extract the account balance
  const currentBalance = jsonResponse.value

  if (currentBalance < balanceLimit) { // <- added
    Logger.log('Balance is low') // <- added
  } // <- added
}

Hemos añadido una nueva variable balanceLimitpara especificar la cantidad por debajo de la cual debemos recibir una alerta por correo electrónico. Luego, al final del script, hemos añadido un simple if para comparar nuestro saldo actual y límite de saldo. Vamos a ejecutar el script anterior, y comprobar nuestro registrador para cualquier registro.

Console log if balance is low

Enviar un correo electrónico

La lógica de nuestra aplicación está completa y lo último que tenemos que añadir es el código para enviar un correo electrónico. Aquí es donde te enamorarás de Google Apps Script. Todo lo que tenemos que añadir es esta única línea y estaremos listos para enviar un correo electrónico. No necesitamos especificar protocolos, puertos y otras cosas de bajo nivel a las que estamos tan acostumbrados.

Para cualquier correo electrónico, necesitamos tres cosas: destinatario, asunto y cuerpo. Modifiquemos nuestra función fetchBalance y añadamos la funcionalidad de correo electrónico:

function fetchBalance() {
  // get these credentials from Vonage's dashboard
  const apiKey = '--------' 
  const apiSecret = '----------------'

  const balanceLimit = 5 // in euros
  
  const emailSubject = 'Vonage Balance is low' // <- added
  const emailTo = '--------------------' // <- added

  // construct the api endpoint
  const url = `https://rest.nexmo.com/account/get-balance?api_key=${apiKey}&api_secret=${apiSecret}`
  
  // send a get request
  const response = UrlFetchApp.fetch(url, {'method': 'GET'})

  // discard the execution of the response status code is other than 200
  if (response.getResponseCode() !== 200) return

  // convert the json string into a json object
  const jsonResponse = JSON.parse(response.getContentText())

  // parse the response and extract the account balance
  const currentBalance = jsonResponse.value

  // send a reminder email in case the balance is lower than limit
  if (currentBalance < balanceLimit) {
    const emailBody = `Your current Vonage balance: €${currentBalance} as of ${new Date()}. Please recharge soon.` // <- added
    GmailApp.sendEmail(emailTo, emailSubject, emailBody) // <- added
  }
}

Siéntase libre de modificar el emailSubject y emailBody a su gusto.

Se nos pedirán permisos de nuevo. Es porque hemos añadido un trozo de código para enviar un email que requiere autorización del usuario, ya que el script enviará el email en nombre del usuario. Por lo tanto, necesitamos autorizar los nuevos permisos.

Review Permissions for Google Apps Script

Una vez finalizada la ejecución del script, tenemos que comprobar nuestra bandeja de entrada en busca del correo electrónico.

Email received when Vonage Account balance is low

Nota: El correo electrónico sólo se enviará si el saldo de su Account es inferior al límite de saldo que haya establecido en el script.

Comprobar el saldo periódicamente

Una de las mejores características de Google Apps Script son sus Disparadores. Los Triggers, o CRON jobs como a veces decimos, nos permiten ejecutar nuestro script de forma automatizada sin ninguna intervención humana. Google Apps Script proporciona muchas maneras de crear disparadores, a través de una interfaz de usuario, así como mediante programación.

La frecuencia de activación depende completamente de nuestro caso de uso. Si nuestra API de Vonage se usa con frecuencia, tiene sentido ejecutar el script con mayor frecuencia, por ejemplo, cada hora. De lo contrario, podemos crear un disparador que ejecute nuestra fetchBalance una vez al día o una vez a la semana. ¡Tú decides!

Vamos a seguir adelante y crear un disparador mediante programación. En Code.gsnecesitamos añadir la siguiente función:

function createTrigger() {
  // create a trigger to run fetchBalance function every hour
  ScriptApp.newTrigger('fetchBalance')
      .timeBased()
      .everyHours(1)
      .create()
}

El script anterior hace exactamente lo que dice. Crea un disparador que ejecuta nuestra fetchBalance cada hora. Ejecutemos la función createTrigger seleccionándola en la barra de acciones.

Run a createTrigger function

Se nos pedirá de nuevo una solicitud de autorización. Los activadores requieren Permitir que esta aplicación se ejecute cuando usted no esté presente permiso. Autoricemos el script y esperemos a su ejecución.

Review Permissions for Google Apps Script

Una vez finalizada la ejecución, debemos verificar si se ha creado o no un nuevo disparador.

En la barra lateral, vayamos a Disparadores.

Google Apps Script Sidebar

Muy bien. Podemos ver que se ha creado un disparador. Tenemos que esperar algún tiempo antes de que el disparador se ejecute.

Triggers created in Google Apps Script

Acabamos de crear nuestro recordatorio de saldo personalizado. Es realmente útil para un servicio continuo.

¿Y ahora qué?

Hay muchas formas de crear notificaciones. Podemos enviar notificaciones de Slack, o incluso utilizar la API de Vonage para enviar mensajes de Whatsapp o SMS a nuestros clientes. Puedes obtener más información sobre la API de Vonage en Desarrollador de API de Vonage.

Compartir:

https://a.storyblok.com/f/270183/400x400/d92d35f488/ravgeet-dhillon.png
Ravgeet Dhillon

Ravgeet is a freelancer and Co-Founder at RavSam. He helps startups, businesses, open-source organizations with Content Management Systems, Web and Mobile App Development. He is a fan of Jamstack and likes to work with Flutter, Strapi, Nuxt/Vue and Python. He also teaches students about new technologies by conducting monthly classes.