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
0 commenti