Envoi de SMS par un robot

Le principe, les outils

Je désire envoyer un SMS à tous les adhérents de mon association, pour leur communiquer une date d’un évènement sportif. Le mail ne fait plus d’effet ; il n’est pas lu, pas ouvert, pas arrivé…

J’opte pour un petit programme qui enverra en masse les SMS par mon smartphone. L’outil SMSGatewayMe me propose cette solution, gratuite, avec une API en PHP et une application à installer sur mon Smartphone.

 

La solution en détails

Depuis mon PC, mon programme (= mon robot) contacte par WebService la plateforme SMSGatewayMe, avec des messages du type « Envoyer le texto ‘Salut, il y a un barbecue ce week-end. tchao ! (association AAA)’ à ’06.12.34.56.78′, depuis mon smartphone, id=13245 ».

La plateforme SMSGatewayMe stocke cette info dans sa base de données, avec l’id du smartphone, le message, le destinataire.

L’application sur mon smartphone contacte régulièrement la plateforme SMSGatewayMe : « Est-ce qu’il y a des SMS à envoyer pour le smartphone id=12345 ?« . Elle lui retourne en réponse le SMS à envoyer.

L’application sur mon smartphone crée un nouveau SMS, visible depuis mes messages de mon smartphone. Les personnes me répondent directement.

 

La technique

Après avoir créé un compte sur https://smsgateway.me/, il faut récupérer le fichier « smsGateway.php ». Regardons le programme « run.php » :

<?php
include "smsGateway.php";

function main(){
  $smsGateway = new SmsGateway('moi-meme@gmail.com', 'monMot2Passe');
  $deviceID = 12345;

  $message = "Salut,
il y a un barbecue ce week-end.
tchao !
(association AAA)";

  $row = 1;
  if (($handle = fopen("envoi-sms.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
      //echo "----". $data . "\n";
      $nbChamps = count($data);
      //echo "$nbChamps champs dans la ligne #$row\n";
      if($nbChamps < 2) {
        echo "fini\n";
        return;
      }
      $user = $data[0];
      $adresse = $data[1];
      $tel = $data[2];
      if( $user == "Nom" ){
        //echo "ligne d'entete\n";
        continue;
      }
      echo "Envoi d'un SMS vers ".$user." --> ".$tel."\n";
      $result = $smsGateway->sendMessageToNumber($tel, $message, $deviceID);

      $row++;
    }
    fclose($handle);
  }
  echo "--\n";

}

main();
?>

Le fichier « envoi-sms.csv » est un tableur Excel exporté en CSV, avec les colonnes suivantes : « Nom », « Adresse », « Téléphone ». Il y a une ligne d’entête pour mieux se repérer.

Enfin, une fois que tout est prêt, il suffit de lancer la commande suivante :

php run.php

 

Remarques

Ok, l’évènement n’est pas très sportif, passons…

Le nombre de caractères est limité. Faites des tests pour vous assurer que les sauts de ligne sont correctement placés, les caractères spécieux sont bien interprétés, le compte est bien configuré, etc.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>