Magazine Opinioni

SMSgateway: inviare migliaia di SMS dal proprio smartphone Android

Creato il 13 ottobre 2015 da Michelepinassi @michele_pinassi
SMSgateway: inviare migliaia di SMS dal proprio smartphone Android

Per motivi di lavoro mi sono trovato a dover spedire circa 3000 SMS ad altrettanti destinatari nel più breve tempo possibile. In passato mi ero già avvalso di sistemi automatizzati totalmente via web, come Skebby, ma questa volta, per tutta una serie di motivi contabili, non era possibile usare il medesimo strumento.

SMSgateway: inviare migliaia di SMS dal proprio smartphone Android
Mi sono così chiesto se esistevano strumenti per sfruttare la propria utenza di telefonia mobile per l'invio di bulk SMS ed ho così scoperto un servizio comodissimo che permette di inviare SMS dal proprio smartphone Android utilizzando delle API via web: SMSGateway.me. Probabilmente di servizi analoghi ne esisteranno anche altri (liberi di segnalarli, se lo ritenete opportuno) ma essendo stata una esperienza comunque positiva, trovo corretto fargli un minimo di pubblicità gratuita
SMSgateway: inviare migliaia di SMS dal proprio smartphone Android

Il funzionamento del sistema è piuttosto semplice: si installa sul proprio smartphone la loro app SMS Gateway, disponibile su Google Play, e si registra un account gratuito sulla loro piattaforma. A questo punto, seguendo le istruzioni per usare le API (gli esempi sono in PHP ma le chiamate funzionano con qualunque linguaggio), si predispone l'invio degli SMS.

Per funzionare, mi sembra chiaro, il proprio smartphone Android deve essere collegato alla Rete via GPRS o WiFi, così da poter ricevere i dati dal servizio.

Ad esempio, avevo un file CSV (Comma Separated Value) contenente i campi NOME, COGNOME, EMAIL, NUMERO DI CELLULARE. Con il seguente script ho comodamente inviato più di 3000 SMS, aggiungendo anche il controllo e la normalizzazione del numero telefonico sfruttando la libreria libphonenumber:

[...]
include "../smsGateway.php";
include_once "../libphonenumber/NumberFormat.php";

$smsGateway = new SmsGateway('[nome utente]', '[password]'); $deviceID =[numero dispositivo]; $smsMessage = "[messaggio da inviare]"; $options = [ 'expires_at' => strtotime('+1 hour') // Cancel the message in 1 hour if the message is not yet sent ]; if(($handle = fopen("destinatari.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { // Destinatario $destinatario = ucfirst(strtolower($data[0]))." ".ucfirst(strtolower($data[1])); // Invia SMS if(strlen($data[2]) > 5) { try { $numberProto = $phoneUtil->parse($data[2], "IT"); } catch (\libphonenumber\NumberParseException $e) { var_dump($e); continue; } if($phoneUtil->isValidNumber($numberProto)) { $number = $phoneUtil->format($numberProto, E164); echo "Sending SMS to $destinatario number $number..."; // Splitta l'SMS in pezzi da 160 caratteri se il messaggio è troppo lungo $text = explode('\n',wordwrap($smsMessage, 160, '\n')); foreach($text as $chunk) { // Invia SMS $result = $smsGateway->sendMessageToNumber($number, $chunk, $deviceID, $options); // Verifica l'esito dell'invio... $c++; $esito = intval($result['response']['success']); if($esito > 0) { echo "OK\n"; } else { echo "Errore !\n" } } } else { echo "Invalid number $data[2]<br>\n"; } } } } echo "Just sent $c SMS !\n";

Ovviamente lo script è migliorabile ma può essere un buon punto di inizio per iniziare la propria campagna di comunicazione via SMS...


Ritornare alla prima pagina di Logo Paperblog

Magazine