Introduzione

Oggi vediamo come inviare con node.js un SMS attraverso una chiamata POST REST API. Per farlo utilizzeremo il servizio di SMShosting, che ho trovato molto affidabile ed a costi veramente contenuti.

SMShosting oltre a permettere di inviare e ricevere gli SMS con la loro interfaccia web, danno la possibilità di inviarli tramite chiamate REST API.

Usare le REST API apre milioni di possibiltà perchè possiamo programmaticamente inviare gli SMS, ad esempio su eventi specifici, come alert di sonde, timer etc.

Registrazione a SMShosting e generazione chiavi

Per prima cosa ci registriamo su smshosting.it e acquistiamo il credito necessario per poter inviare gli SMS. Solitamente è possibile fare una prova gratis del servizio.

Una volta registrati dobbiamo ottenere due codici fondamentali che sono AUTH_KEY e AUTH_SECRET, che non sono altro che le credenziali di accesso al proprio account via REST API.

Accediamo alla pagina IMPOSTAZIONI – SOAP/REST API

Generiamo le credenziali API e prendiamo nota di questi codici.

Scriviamo il codice

Ora possiamo iniziare a scrivere il nostro codice node.js

Installiamo innanzitutto due moduli fondamentali e che semplificano notevolmente la chiamata REST API: Request e Querystring

 
npm install --save request querystring

ed infine scriviamo il seguente codice, facendo attenzione a compilare i campi con le chiavi generate dal sito di SMShosting, il messaggio che si vuole inviare ed il numero di cellulare del destinatario del messaggio.
Attenzione al numero che deve contenere anche il prefisso internazionale, che in Italia è il 39. Non aggiungete il simbolo ‘+’ davanti al numero in quanto non è necessario

// importiamo i moduli request e querystring
var request = require('request');
var querystring = require('querystring');
// impostiamo le variabili necessarie
var auth_key = 'la mia auth key';               // inserisci qui la AUTH_KEY
var auth_secret = 'la mia secret key';          // inserisci qui la AUTH_SECRET
var urlapi = 'https://api.smshosting.it/rest/api/sms/send';
var messaggio = 'Hello world';       // il messaggio che vuoi mandare
var phonenumber = 'NUMERO DESTINATARIO CON PREFISSO INTERNAZIONALE';  //es. 39333123456
//prepariamo la richiesta rest api
var formData = querystring.stringify(form);
var contentLength = formData.length;
var form = {
to: phonenumber,
text: messaggio
};
var formData = querystring.stringify(form);
var contentLength = formData.length;
// inoltriamola richiesta di invio sms
request({
headers: {
'Content-Length': contentLength,
'Content-Type': 'application/x-www-form-urlencoded'
},
auth: {
user: auth_key,
password: auth_secret
},
uri: urlapi,
body: formData,
method: 'POST'
}, function (err, res, body) {
var r = JSON.parse(res.body);
// verifico la risposta
// se è il valore in smsNotInserted è uguale a 1 allora si è verificato un errore
if (r.smsNotInserted == 1) {
console.log('sms non inviato');
}
// se è il valore in smsInserted è uguale a 1 allora
// il messaggio è stato accodato per l'invio
if (r.smsInserted == 1) {
console.log('sms inviato');
}
});

Se tutto è stato configurato correttamente allora riceverete l’sms sul numero impostato, e node.js restituirà il messaggio di conferma

Buon invio di SMS a tutti 🙂

PS:
qui trovate il codice sorgente
https://github.com/lenny76/smshostingrestapi

 


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *