
Compartir:
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.
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.

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.

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.

Se nos proporcionará una lista con todos los permisos necesarios para ejecutar el 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.

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.

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.

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
emailSubjectyemailBodya 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.

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

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.

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.

Una vez finalizada la ejecución, debemos verificar si se ha creado o no un nuevo disparador.
En la barra lateral, vayamos a Disparadores.

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

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:
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.
