Notifications Calendrier Serverless par SMS avec Postman et Twilio

May 26, 2021
Rédigé par
Joyce Lin
Contributeur
Les opinions exprimées par les contributeurs de Twilio sont les leurs

Notifications Calendrier Serverless par SMS avec Postman et Twilio

J'adore manger des fruits frais, mais je ne sais jamais ce qui est de saison tant que je ne vais pas chez mon épicier. Imaginez donc mon bonheur quand j'ai découvert les Journées nationales des fruits ! C'est vrai, ce n'est sans doute qu'un coup marketing dans mon pays, mais cela me permet aussi de me tenir au courant de ce qui est de saison.

Ce tutoriel vous explique comment configurer des notifications de calendrier personnalisées. Même si vous ne vous intéressez pas aux fruits, apprenez à déclencher une notification à une date donnée à l'aide d'un moniteur Postman, afin de ne jamais manquer un événement spécial. Dans ce tutoriel, nous effectuerons les opérations suivantes :

  • Configurer une collection Postman
  • Ajouter un exemple de réponse pour le stockage de données
  • Simuler l'API sur les serveurs Postman
  • Configurer une notification SMS avec Twilio
  • Exécuter la collection localement dans Postman
  • Planifier l'exécution d'un moniteur sur les serveurs Postman

Prérequis pour ce tutoriel

Pour utiliser Postman dans un navigateur Web, comme nous le ferons dans cet exemple au cours du développement, vous serez invité à télécharger et exécuter l'agent Postman sur votre ordinateur local afin de surmonter les limites du partage de ressources entre origines multiples (CORS). L'agent n'est pas la même chose que l'appli. Sur un ordinateur Mac, vous verrez une icône pour l'agent Postman en cours d'exécution dans le menu d'état situé dans le coin supérieur droit de votre écran. Sur un ordinateur Windows, l'icône de l'agent Postman s'affichera dans la barre d'état système en bas à droite de l'écran.

Si vous ne souhaitez pas utiliser Postman dans un navigateur Web avec l'agent, vous pouvez télécharger et installer à la place l'appli Postman pour Mac, Windows ou Linux.

Configurer une collection Postman

Connectez-vous à Postman. En haut à gauche, créez un nouvel espace de travail personnel qui contiendra votre travail. Sélectionnez ensuite l'onglet Collections sur la gauche et créez une nouvelle collection.

Ajoutez deux requêtes à la collection, intitulées Vérifier le calendrier et Envoyer une notification par SMS. Nous renseignerons les détails de ces requêtes par la suite. La première requête recherchera les événements importants. La deuxième enverra un SMS depuis votre numéro de téléphone Twilio vers votre numéro de téléphone personnel.

Créer une collection Postman avec des textes fantômes pour deux demandes API

Ajouter un exemple de réponse pour le stockage de données

Pour stocker quelque chose de simple comme une liste de dates, nous pouvons utiliser un serveur API fictif qui renverra des données statiques, au lieu d'une API complète communiquant avec une base de données. Simulons les données sur les serveurs Postman à travers un exemple décrivant les données que nous voudrions que le serveur fictif nous renvoie. En d'autres termes, pour une requête API ayant tel aspect, nous attendons une réponse ayant tel autre.

Bien que nous n'ayons pas besoin d'ajouter les données simulées directement à notre collection, le fait de les avoir à portée de main nous permet de les voir et de les mettre à jour plus facilement. Ainsi, sous la première requête Vérifier le calendrier, allez dans le menu (...), et sélectionnez "Ajouter un exemple".

Pour l'exemple de requête, laissez la méthode HTTP définie sur GET, et saisissez {{url}}/fruits comme adresse. Pour l'exemple de réponse, saisissez 200 OK pour le code d'état HTTP, tandis que le corps peut être JSON et être structuré comme un tableau d'objets, de la façon suivante :

   {
       "event": "National Chocolate Covered Cherry Day"

Accédez aux En-têtes de réponse dans l'exemple, puis ajoutez une clé Content-Type avec pour valeur application/json. Assurez-vous d'ajouter cet en-tête à la réponse en bas, et non à la requête en haut.

Le point de terminaison fictif renvoie des données d'exemple

Lorsque vous êtes satisfait des données simulées, enregistrez l'exemple. Vous verrez l'exemple répertorié comme « par ex. » sous la première requête. Cet exemple est la base de la simulation d'API que nous créerons dans l'étape suivante.

Simuler l'API sur les serveurs Postman

Ayant ajouté l'exemple à notre collection à l'étape précédente, nous devons également y ajouter notre serveur fictif. Accédez au menu Plus (...) de la collection, puis sélectionnez « Collection fictive ». Donnez un nom à votre simulation. Vous pouvez décocher la case « Enregistrer l'URL de serveur fictif comme variable d'environnement », car nous n'utilisons pas d'environnement. Confirmez vos options de configuration en cliquant sur le bouton Create Mock Server (Créer un serveur fictif).

Créer un serveur fictif à l'aide d'un exemple enregistré dans la collection

Une fois que vous avez créé un simulateur, copiez l'URL du simulateur fourni par Postman et revenez à la première requête de votre collection appelée Vérifier le calendrier. Saisissez l'URL fictive comme adresse de requête. N'oubliez pas d'ajouter /fruits à la fin de votre URL fictive, conformément à l'exemple de chemin de requête que vous avez enregistré à l'étape précédente. Cliquez ensuite sur le bouton Send (Envoyer) pour voir vos données simulées dans le corps de la réponse.

Utiliser le serveur fictif Postman pour renvoyer des données d'exemple

Écrire un déclencheur conditionnel dans Postman

Dans Postman, vous pouvez écrire du JavaScript qui s'exécute soit avant, soit après votre requête API, sous les onglets Pre-request Script (Script pré-requête) et Tests, respectivement. Ces onglets sont un bon moyen de contrôler votre flux de travail lors de l'exécution d'une collection entière. Par exemple, nous ne voulons recevoir une notification SMS que si la date d'un événement approche. S'il n'y a pas d'événement à venir, cela nous est égal.

Pour ce faire, Postman fournit une API pm.*, laquelle pourra être utilisée dans un script sous l'onglet Tests afin d'accéder aux données renvoyées dans la réponse, telle que pm.response.json(). Vous pouvez également utiliser une fonction intégrée postman.setNextRequest() pour modifier l'ordre d'exécution de la cascade d'une collection.

Sous l'onglet Tests de la requête Vérifier le calendrier, ajoutez le code suivant à exécuter après la récupération des données du calendrier.

// utiliser moment.js pour formater la date du jour
const moment = require('moment')
let today = moment().format('MMMM DD')

// parser la donnée simulée pour voir si aujoud'hui est un jour spécial
let calendar = pm.response.json()
let eventToday = calendar.filter(event => { return event.date === today })
if (eventToday.length > 0) {
  console.log('Special Event detected - send the next request')
  pm.collectionVariables.set("event", eventToday[0].event)
  pm.collectionVariables.set("message", eventToday[0].message)
  postman.setNextRequest("Send SMS notification")
} else {
  console.log('No Special Events - terminate the collection run')
  postman.setNextRequest(null)
}

Si la date du jour est importante, nous stockerons certaines données à transmettre au prochain appel de notre collection. Dans le cas contraire, nous arrêterons immédiatement l'exécution de la collection.

Ajouter une instruction conditionnelle sous l'onglet Tests

Configurer la notification SMS avec Twilio

Pour configurer la requête API de sorte qu'elle envoie notre notification SMS, nous aurons d'abord besoin de nos informations d'identification Twilio pour autoriser la requête. Recherchez le SID et le token d'autorisation de votre compte Twilio en vous connectant à la Console Twilio. Cliquez ensuite sur Parameters (Paramètres) dans la barre latérale et faites défiler vers le bas jusqu'à API Credentials (Informations d'identification API). Vous aurez également besoin de votre numéro de téléphone Twilio pour envoyer le SMS.

Informations d'identification Twilio

Puisque nous ne travaillons qu'avec une seule collection dans Postman, stockons nos variables dans le périmètre de la collection. Si vous souhaitez utiliser ces informations d'identification avec un ensemble d'autres collections Postman, vous pourriez utiliser un environnement Postman à la place. Dans Postman, cliquez sur le nom de la collection pour en afficher les détails. Sélectionnez l'onglet Variables pour saisir les variables suivantes, puis enregistrez vos modifications.

TWILIO_ACCOUNT_SID=<your-account-sid>
TWILIO_AUTH_TOKEN=<your-auth-token>
TWILIO_PHONE_NUMBER=<your-twilio-phone-number>
MY_PHONE_NUMBER=<your-personal-phone-number>

Note de sécurité : si vous travaillez dans un espace de travail d'équipe ou public dans Postman, et que vous ne voulez pas partager vos informations d'identification, assurez-vous de saisir les valeurs dans la colonne CURRENT VALUE (VALEUR ACTUELLE) et non dans la colonne INITIAL VALUE (VALEUR INITIALE), comme indiqué dans la capture d'écran suivante.

Saisir les variables de collection Postman comme VALEUR ACTUELLE

Trouvez la deuxième requête appelée Envoyer une notification par SMS. Mettez à jour la méthode HTTP sur POST, puis saisissez l'adresse de requête suivante.

https://api.twilio.com/2010-04-01/Accounts/{{TWILIO_ACCOUNT_SID}}/Messages.json

Nous utilisons des accolades doubles pour obtenir des variables dans les champs de texte de Postman. Survolez {{TWILIO_ACCOUNT_SID}} dans l'adresse de requête afin de voir comment Postman résout cette variable.

Sous l'onglet Authorization (Autorisation), sélectionnez le type Basic Auth (Autorisation de base). Saisissez {{TWILIO_ACCOUNT_SID}} pour le « Nom d'utilisateur » et {{TWILIO_AUTH_TOKEN}} pour le « Mot de passe ».

Autorisation à l&#x27;aide de l&#x27;assistant de type Autorisation de base

Si vous jetez un œil sous l'onglet Headers (En-têtes), vous verrez comment Postman génère l'en-tête Authorization approprié sur la base des informations que vous avez saisies.

Sous l'onglet Body (Corps), configurez les détails du SMS. Sélectionnez « x-www-form-urlencoded » et ajoutez les paramètres FromTo et Body. Le SMS est envoyé de votre numéro de téléphone Twilio à votre numéro de téléphone personnel. Il contient des informations à inclure dans le SMS.

Configurer les détails du SMS dans le corps de la demande

La plupart de nos variables, telles que TWILIO__PHONE_NUMBER et MY_PHONE_NUMBER, ont été saisies manuellement dans Postman. Toutefois, l'événement et le message seront définis de manière dynamique lors de la requête Vérifier le calendrier précédente en cas d'événement spécial. Vérifions maintenant dans l'étape suivante que notre code fonctionne correctement.

Exécuter la collection localement dans Postman

Si aucun événement n'est prévu pour aujourd'hui, mettez à jour les données simulées en modifiant l'exemple Postman (sous « par ex. »). Ajoutez un événement factice avec la date du jour et enregistrez vos modifications.

Examinons chacun des appels, pas à pas. Envoyez la première requête Vérifier le calendrier, puis vérifiez que l'événement et le message des variables de collection sont définis. Pour ce faire, vous pouvez vérifier l'éditeur de variables de collection ou survoler ces variables dans la deuxième requête.

Envoyez la deuxième requête Envoyer une notification par SMS, et vérifiez que l'événement et le message correct sont envoyés dans le SMS. Pour ce faire, vérifiez votre téléphone ou la console Postman en bas à gauche.

Une fois que vous êtes satisfait de la configuration et des propriétés de vos variables, cliquez sur l'icône Runner (Exécuteur) en bas à droite. Faites glisser la collection dans le nouvel onglet, puis appuyez sur le bouton Run (Exécuter) pour exécuter la collection complète. Les deux requêtes devraient s'exécuter.

Exécuter la collection pour exécuter toutes les demandes API

La dernière chose que nous devons vérifier, c'est que nous n'envoyons pas de SMS lorsqu'aucun événement spécial n'est prévu. Là encore, modifiez votre exemple (sous « par ex. ») afin de supprimer l'événement factice et d'enregistrer vos modifications. Exécutez à nouveau votre collection à l'aide de l'Exécuteur, afin de vous assurer que seule la première requête s'exécute.

Maintenant que nous avons la certitude que notre code fonctionne, passons à l'étape suivante et planifions la collection pour qu'elle s'exécute tous les jours à partir des serveurs Postman.

Planifier l'exécution d'un moniteur sur les serveurs Postman

Un moniteur Postman est une exécution d'une collection planifiée sur des serveurs Postman. Accédez au menu Plus (...) de la collection et sélectionnez Monitor collection (Moniteur de collection). Donnez un nom à votre moniteur. Sous Run this monitor (Exécuter ce moniteur), mettez à jour la fréquence en la définissant sur Weekly (Toutes les semaines) de façon à pouvoir exécuter la collection Every Day (Tous les jours). Confirmez la Création.

Programmer un moniteur Postman pour qu&#x27;il s&#x27;exécute tous les jours

Sous l'onglet Monitors (Moniteurs) à gauche, vous verrez un historique des exécutions du moniteur. Postman exécutera cette vérification automatiquement tous les jours et je recevrai une notification SMS à chaque célébration d'une journée dédiée à un fruit spécifique.

Conclusion

La création d'une notification SMS est simple, mais il existe plusieurs façons d'en déclencher une. J'ai précédemment expliqué comment planifier un cronjob sur Kubernetes. La planification d'un moniteur Postman est encore plus facile et ne nécessite aucun déploiement de code. Puisez dans cet exemple et suivez les étapes sous « Démarrage rapide » pour une mise en route rapide.

Une fois cette collection configurée, il vous reste encore plein de choses à explorer.

  • Mettez à jour le déclencheur conditionnel : lorsque vous découvrez de nouveaux événements que vous ne voulez pas manquer, ajoutez-les à l'exemple contenant vos données simulées. Vous pouvez également puiser dans la collection pour créer un nouveau déclencheur conditionnel dans la première requête, par exemple envoyer une alerte lorsque le cours de vos actions passe sous un certain prix.
  • Modifiez la méthode de notification : si vous n'aimez pas recevoir de notifications SMS, remplacez la deuxième requête de la collection afin d'envoyer un e-mail. Vous pouvez également programmer des notifications en cascade. L'équipe de Twilio a publié une collection Postman pour vous aider à automatiser encore plus de flux de travail.

Joyce aime coder, les chats et les déjeuners. Retrouvez-la sur Twitter, Medium et LinkedIn.