Free a annoncé il y a quelques jours une nouvelle fonctionnalité : les notifications SMS. Il s’agit simplement d’une option gratuite que vous pouvez activer depuis votre espace client qui vous permettra de vous envoyer à vous même des SMS à l’aide d’une API.

À quoi bon ? Eh bien cette fonctionnalité pourrait vous être utile pour votre système d’alarme par exemple. Dans mon cas, j’utilise en premier lieu cette API, et si pour une raison ou une autre le SMS n’est pas envoyé (coupure des lignes, brouillage 3G, etc.) alors le SMS part via le Sim900 placé stratégiquement pour qu’il ne puisse jamais être parasité par un brouilleur quelconque.

Très simple d’utilisation, l’URL à interroger ressemble à ça :

https://smsapi.free-mobile.fr/sendmsg?user=XXXXX&pass=YYYYY&msg=Yeah%20!

XXXXX est votre identifiant Free mobile et YYYYY une clé servant exclusivement à cette API. Cette dernière vous est fournie lorsque vous activez l’option via votre espace client.

Bref, ce qui nous intéresse ici est de voir comment utiliser l’API depuis Node.js, alors allons-y.

Utilisation depuis Node.js

Node.js inclut par défaut un module https. Nous utiliserons simplement ce module pour aller interroger notre API et lire le code HTTP qu’elle renvoie. Pour ce faire, le code suivant suffit :

var https = require('https');
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';

var apiUrl = "https://smsapi.free-mobile.fr/sendmsg?user=XXXXX&pass=YYYYY&msg=Yeah%20!";

https.get(apiUrl, function(res) {
    if(res != 200){
    	// Envoi depuis le Sim900, mail, etc.
    }

    res.resume();
}).on('error', function(e) {
    console.error(e);
});

Et voilà, c’est tout. Si tout se passe bien, vous devriez recevoir un SMS sur votre mobile. Autrement, libre à vous de gérer l’erreur pour passer le message à votre module GSM ou pour l’envoyer par mail.

Je regrette qu’il ne soit pas possible de préciser le destinataire. Free cherche certainement à limiter ainsi les abus ; croisons les doigts pour qu’ils débloquent cette fonctionnalité prochainement.


À bientôt !