Sailsjs et Twilio pour envoyer des SMS

Sailsjs est un framework basé sur nodejs et qui vous permet de développer des applications web. Il est basé sur le modèle de programmation MVC. Avec sailsjs vous pouvez créer votre backend qui accepte presque tous les clients commes Angular , Vue , Android etc.. Si vous ne connaissez pas le framework sailsjs, je vous invite à lire mon blog qu'est ce que sailsjs. Dans ce blog je vais vous montrer comment envoyer des sms depuis une application sailsjs et la plateforme Twilio.

Qu'est ce que Twilio

Twilio est une société américaine spécialisée dans la communication par voix, image et SMS. Twilio a développé des APIs pour permettre aux développeurs d'utiliser facilement ses services. Dans ce blog, je vais vous montrer comment utiliser l'API SMS de Twilio pour envoyer des sms dans une applications sailsjs. Avant d'utiliser Twilio, vous devez créer un compte et récupérer les 2 paramètres ACCOUNT SID et AUTH TOKEN. Ces 2 paramètres se trouvent dans votre dashboard de Twilio. Vous devez aussi achetez un numéro capable d'envoyer des sms chez Twilio et chargez évidemment votre compte.

Configuration de Twilio dans Sailsjs

L'utilisation de Twilio dans une application Sailsjs necessite quelques modifications. Si vous n'avez jamais créé un projet sailsjs, je vous invite à lire mon blog l'anatomie d'un projet sailsjs. Ce blog explique très bien un projet sailsjs et tout son contenu.
Installez le module twilio avec la commande suivante

npm install twilio --save

Cette commande va installer le module twilio dans votre projet sailsjs.
Ouvrez le fichier de configuration config/custom.js et rajoutez les variables suivantes:

 TWILIO:{
    accountSid:'Votre accountSid ',
    authToken:'Votre authToken',
    from:'Votre numéro sous la forme +33XXXXXX'
  },

Création d'un helper pour envoyer les sms

Nous allons maintenant créé un helper pour envoyer les sms. Un helper est comme un service que vous pouvez utiliser dans tout votre projet sailsjs.
Exécutez la commande suivante:

sails generate helper sendSms

Cette commande va créer le fichier api/helpers/send-sms.js. Modifiez ce fichier comme ci-dessous

var twilio = require('twilio');
module.exports = {


  friendlyName: 'Send sms',


  description: '',


  inputs: {
    message:{
      type:'string'
    },
    to:{
      type:'string'
    }
  },


  exits: {

  },


  fn: async function (inputs, exits) {

    var client = new twilio(sails.config.custom.TWILIO.accountSid, sails.config.custom.TWILIO.authToken);
   client.messages.create({
        body: inputs.message,
        to: inputs.to,  
        from: sails.config.custom.TWILIO.from 
    })
    .then(msg => {return  exits.success(msg)})
    .catch(error => {return exits.error(error)})

  }


};

Le helper prend en paramètre le message à envoyer et le numéro de téléphone toujours sous la forme E.164.

Envoie des sms depuis un controller

Une fois votre helper créé comme ci-dessous, vous pouvez l'utiliser depuis n'importe quel controller de votre application comme ci-dessous:

const resultsms = await sails.helpers.sendSms.with({
           message:'Votre message',
           to:'Le numéro du destinataire sous la forme +33xxxxx'
         })

C'est terminé. Merci d'avoir lu mon blog. N"hésiter pas à le commenter et le partager sur les réseaux sociaux.