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

Créer un rappel de solde avec Vonage Account API et Google Apps

Temps de lecture : 5 minutes

En tant qu'indépendant, j'ai aidé quelques entreprises locales en Inde à mettre en œuvre des produits Vonage. Récemment, l'un de mes clients m'a demandé s'il pouvait recevoir un courriel de rappel lorsque le solde de Vonage est inférieur à une limite spécifiée, car il ne voulait pas entraver ses activités en raison d'un solde insuffisant. Presque tous mes clients utilisent Google Workspace, j'ai donc décidé de créer une intégration de Vonage et de Google Apps Script pour créer ce flux de travail.

Google Apps Script nous permet de gérer toutes les applications Google à l'aide d'une seule plateforme dans le nuage. Le plus intéressant, c'est que l'authentification est intégrée dans les plateformes et que de nombreuses entreprises du marché utilisent Google Workspace, anciennement connu sous le nom de G-Suite.

Dans cet article de blog, nous allons apprendre à créer des notifications personnalisées lorsque le solde de notre Account Vonage est inférieur à une limite spécifiée. Ce billet s'adresse aux développeurs Vonage qui souhaitent gérer efficacement leur base de clients en leur envoyant des rappels concernant le solde de leur Account Vonage.

Conditions préalables

  • Compte Google - Nous avons besoin d'un Account Google - Personnel ou Espace de travail Google.

  • Compte API Vonage - Nous aurons besoin d'un compte API Vonage. Nous pouvons nous inscrire dès aujourd'hui et commencer à construire avec un crédit gratuit. Une fois que nous avons un Account, nous pouvons trouver notre API Key et API Secret en haut du tableau de bord de l'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.

Créer un projet Google Apps Script

Commençons par créer notre premier projet Google Apps Script. Nous devons nous rendre sur la page d'accueil Apps Script Home Page et créer un Nouveau projet. Une fois le nouveau projet créé, nous devons lui donner un nom à retenir. Nous appellerons notre projet Rappel de solde Vonage.

A New Google Apps Script

Vérifier le solde

Commençons par la partie la plus importante et la plus intéressante du projet.

Google Apps Script est écrit en JavaScript, donc même si vous avez des connaissances de base en JavaScript, vous pouvez commencer.

Créons une nouvelle fonction, fetchBalanceet essayons de nous connecter à l'API REST de Vonage en envoyant une requête GET pour vérifier notre solde. Nous devons écrire le code suivant dans Code.gs fichier :

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)
}

Commençons par le commencement. Avant d'exécuter le script ci-dessus, nous devons obtenir notre clé API de Vonage et secret API Vonage. Les deux sont disponibles sur Tableau de bord de Vonage.

Vonage Dashboard for API Key and API Secret

Remplacez vos informations d'identification dans le script ci-dessus et exécutez la fonction fetchBalance fonction.

Lorsque nous exécutons une fonction pour la première fois, il nous est demandé d'autoriser l'exécution du script.

Review Permissions request for Google Apps Script

Une liste de toutes les autorisations nécessaires à l'exécution du script nous sera fournie.

List of Permissions for Google Apps Script

Une fois que nous avons autorisé notre projet Google Apps Script, la fonction ci-dessus s'exécutera et la réponse de l'API Vonage Account sera enregistrée dans notre console Logger.

API response logs

Pour récupérer le solde de la réponse, ajoutons les lignes de code suivantes à notre fonction :

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

// inspect the balance
Logger.log(currentBalance)

Exécutons à nouveau la fonction. Nous verrons que cette fois-ci, nous ne sommes pas invités à demander des autorisations et que notre fonction sera exécutée directement.

Vonage Account Balance from API response

Très bien, nous avons maintenant obtenu le solde de notre Account Vonage.

Spécifier la limite du solde

La prochaine chose à faire est d'envoyer une alerte (dans ce cas, un courriel) si notre solde actuel est inférieur à la limite spécifiée. Pour cela, nous devons apporter quelques modifications à notre code :

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
}

Nous avons ajouté une nouvelle variable, balanceLimitpour spécifier le montant en dessous duquel nous devons être alertés par courrier électronique. Puis, à la fin du script, nous avons ajouté un simple if pour comparer notre solde actuel et limite de solde. Exécutons le script ci-dessus, et vérifions que notre logger ne contient pas de logs.

Console log if balance is low

Envoyer un courriel

Notre logique d'application est complète et la dernière chose que nous devons ajouter est le code pour envoyer un email. C'est ici que vous allez tomber amoureux de Google Apps Script. Tout ce que nous avons à ajouter, c'est cette ligne de code et nous sommes prêts à envoyer un courrier électronique. Nous n'avons pas besoin de spécifier les protocoles, les ports et autres éléments de bas niveau auxquels nous sommes habitués.

Pour tout courriel, nous avons besoin de trois éléments : le destinataire du courriel, l'objet du courriel et le corps du courriel. Modifions notre fonction fetchBalance et ajoutons la fonctionnalité d'envoi d'e-mails :

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
  }
}

N'hésitez pas à modifier les emailSubject et emailBody à votre convenance.

On nous demandera à nouveau des autorisations. C'est parce que nous avons ajouté un morceau de code pour envoyer un courriel qui nécessite l'autorisation de l'utilisateur, car le script enverra le courriel au nom de l'utilisateur. Nous devons donc autoriser les nouvelles permissions.

Review Permissions for Google Apps Script

Une fois l'exécution du script terminée, nous devons vérifier si notre boîte de réception contient un courriel.

Email received when Vonage Account balance is low

Note : Le courriel ne sera envoyé que si le solde de votre compte est inférieur à la limite de solde que vous avez définie dans le script.

Vérifier périodiquement le solde

L'une des meilleures caractéristiques de Google Apps Script est son système de déclencheurs. Les déclencheurs, ou les tâches CRON comme nous le disons parfois, nous permettent d'exécuter nos scripts de manière automatisée sans aucune intervention humaine. Google Apps Script propose de nombreuses façons de créer des déclencheurs, par le biais d'une interface utilisateur ou par programmation.

La fréquence de déclenchement dépend entièrement de notre cas d'utilisation. Si notre API Vonage est souvent utilisée, il est logique d'exécuter le script plus fréquemment, par exemple toutes les heures. Sinon, nous pouvons créer un déclencheur qui exécute notre fonction fetchBalance une fois par jour ou une fois par semaine. À vous de jouer !

Allons-y et créons un déclencheur par programme. Dans Code.gsnous devons ajouter la fonction suivante :

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

Le script ci-dessus fait exactement ce qu'il dit. Il crée un déclencheur qui exécute notre fonction fetchBalance toutes les heures. Exécutons la fonction createTrigger en la sélectionnant dans la barre d'action.

Run a createTrigger function

Une nouvelle demande d'autorisation nous sera adressée. Les déclencheurs requièrent l'option Autoriser l'exécution de cette application en votre absence l'autorisation. Autorisons le script et attendons son exécution.

Review Permissions for Google Apps Script

Une fois l'exécution terminée, nous devons vérifier si un nouveau déclencheur a été créé ou non.

Dans la barre latérale, accédons à Déclencheurs.

Google Apps Script Sidebar

C'est très bien. Nous pouvons voir qu'un déclencheur a été créé. Nous devons attendre un certain temps avant que le déclencheur ne s'exécute.

Triggers created in Google Apps Script

Nous venons de créer notre rappel de solde personnalisé. Il est très utile pour le service continu.

Quelle est la prochaine étape ?

Il existe de nombreuses façons de créer des notifications. Nous pouvons envoyer des notifications Slack, ou même utiliser l'API Vonage pour envoyer des messages Whatsapp ou des SMS à nos clients. Vous pouvez en savoir plus sur l'API de Vonage à l'adresse suivante Développeur API Vonage.

Partager:

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.