Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Matthieu Napoli

blog technique

Envoyer des SMS depuis votre serveur en PHP (ou autre langage CGI)

Bonjour à tous,

J'utilise depuis peu un service génial : l'envoi de SMS depuis Internet, à partir d'un script PHP s'exécutant sur votre serveur. Voici un exemple d'utilisation pour vous faire comprendre à quel point c'est simple.

Tout d'abord, dans ce tutorial j'utiliserai la plateforme TM4B.com, car elle est :

  • pas chère (7 centimes d'euro le SMS en France)
  • facile à utiliser
  • fiable (d'après les échos que j'en ai eu)
  • pas de frais fixes pour l'inscription (on ne paye que les SMS, et pas de limite minimum d'achat)
  • on peut simuler un envoi pour débugger les développements

1. Création d'un compte

Inscrivez vous (gratuitement) sur leur site et achetez quelques crédits pour tester le système (100 crédits par exemple, vous donnent une dizaine de SMS, et coutent 1 euro). Attention, si vous payez avec paypal, votre compte doit être vérifié (ce que m'a fait attendre paypal plusieurs jours pour le faire personnellement).

2. Envoi d'un SMS

L'envoi d'un sms se fait par méthode POST HTTP. Voici un exemple de code source permettant d'en envoyer un (à compléter avec vos identifiants de connexion).

<?php

$request = "";
// Nom d'utilisateur du comte TM4B
$param["username"] = "Bob";
// Mot de passe du comte TM4B
$param["password"] = "12345";
// Le contenu du SMS
$param["msg"] = "Hello World !";
// Les destinataires (séparés par un "pipe" | s'il y'en a plusieurs)
$param["to"] = "33123456789";
// Celui qui envoie le message
$param["from"] = "BarackObama";
// Route à utiliser
$param["route"] = "frst";
// Determine si l'envoi est simulé (si oui, c'est gratuit)
// Valeurs : "yes" / "no"

$param["sim"] = "yes";
// Pour être compatible avec l'API 2.0
$param["type"] = "broadcast";

//Construit la requete
foreach($param as $key=>$val){
    $request .= $key . '=' . urlencode($val);
    $request .= '&';
}
// Supprime le dernier "&"
$request = substr($request, 0, strlen($request) - 1);

// URL de la passerelle
$url = "http://www.tm4b.com/client/api/http.php";

//Envoie la requete avec curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // retourne le resultat en variable
curl_setopt($ch, CURLOPT_POST, 1); // méthode POST nécessaire pour les envois multiples
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$response = curl_exec($ch);
curl_close($ch);

// Affiche le résultat
print $response;

?>

À noter que ce script nécessite l'extension PHP Curl (php_curl) activée.

La réponse du serveur, si il n'y a pas d'erreur, doit être de la forme : MT0015195005-1. Il s'agit de l'identifiant du SMS envoyé.


Voilà, bon courage pour la suite (l'API TM4B propose beaucoup de possibilité pour suivre le message). Par contre, pour recevoir des SMS, ça vous coutera plus cher.

Pour ma part, je compte surement installer ce système sur mon NSLU2 pour pouvoir recevoir des alertes à distance.

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: dimanche 31 mai 2009 14:38 par MadMatt
Classé sous : , , , ,

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Simuler facilement l’envoi de mail par Blog de Jérémy Jeanson le il y a 22 heures et 46 minutes

- ProcDump 6.0 : support du filtrage sur messages d'exceptions .NET, des filtres multiples et du ciblage par nom de service par CoqBlog le 05-20-2013, 14:50

- Votez pour le TOP 10 des influenceurs SharePoint francophones ! par Le blog de Patrick [MVP SharePoint] le 05-20-2013, 12:59

- [Conf’SharePoint] Dernier rappel ! :-) par Le blog de Patrick [MVP SharePoint] le 05-20-2013, 09:09

- [ #SharePoint 2013 ] les modèles de sites standards… par Le blog de Patrick [MVP SharePoint] le 05-20-2013, 09:03

- 10 erreurs de compréhension concernant SharePoint… par Le blog de Patrick [MVP SharePoint] le 05-20-2013, 08:27

- Conf’SharePoint : 10 bonnes raisons pour ne pas la rater par Le petit blog de Pierre / Pierre's little blog le 05-14-2013, 02:24

- [Event] Soirée de lancement Agile .NET France à Lyon par Blog Agile/ALM de Vincent THAVONEKHAM le 05-13-2013, 01:29

- .NET / Debug : inspection de la mémoire d'applications .NET (dump ou processus live) : première livraison d'une librairie .NET par Microsoft par CoqBlog le 05-11-2013, 22:21

- SharePoint : Incompatibilité avec Internet Explorer 10 (IE10) par Blog Technique de Romelard Fabrice le 05-08-2013, 16:29