Je vais vous montrer ici comment envoyer des SMS à l'aide de PHP, de manière trèèèès simple.
Pour cela j'utilise une API mise à disposition par Orange sur son site Orange Partner. En plus de l'API SMS, Orange propose en propose de nombreuses autres qui permettent l'envoi et la réception de MMS, de passer des appels via le navigateur, de géo-localiser des numéros de téléphone sur une carte, et j'en passe.
L'inscription au service est gratuite et fonctionne ensuite sur un système de crédits. 1000 crédits sont offerts à l'inscription, ce qui équivaut à l'envoi de 100 SMS gratuitement en France quelque soit l'opérateur du correspondant. Autant vous dire que la recharge de crédit est très intéressante, puisque 1000 crédits coûtent 10€ (soit 100 SMS à 0,1€ le SMS). De plus les tarifs sont dégressifs par rapport au nombre de crédits achetés.
Les détails de cette API sont disponibles ici : SMS API.
Première étape : inscription au service
Pour s'inscrire gratuitement, rien de bien compliqué, il suffit de remplir ce formulaire. Une fois l'inscription terminée et le mail de confirmation reçu, on peut commencer.
Deuxième étape : récupération de la clé d'authentification
Il faut maintenant récupérer une clé qui permettra de vous authentifier afin d'utiliser le service au sein de vos pages PHP.
Une fois authentifié sur le site d'Orange Partner, il faut se rendre dans la partie SMS API puis cliquer sur API Manager. Apparaît alors une Access Key qui servira d'authentification dans vos scripts PHP.
Troisième étape : tester le service
Directement depuis une URL
A partir de maintenant, vous êtes capable d'envoyer des SMS à n'importe quel numéro français. Pour cela, accédez tout simplement à l'URL suivante :
http://sms.alpha.orange-api.net/sms/sendSMS.xml?id=<KEY>&to=<NUM>&content=<TXT>
Remplacez simplement les valeurs suivantes dans l'URL :
- <KEY> : l'access key récupérée à l'étape précédente
- <NUM> : le numéro de téléphone du correspondant, au format international. Par exemple : 33612345678
- <TXT> : le texte à envoyer, au format URL, de 160 caractères maximum
Vous obtenez alors une page XML indiquant un code de statut et un message, indiquant si votre SMS a bien été envoyé ou s'il y a eu une erreur, avec le détail de l'erreur. Et bien entendu, en cas de succès, votre correspondant aura reçu votre SMS. Plus que 99 SMS !
Avec l'API explorer tool
Un outil est accessible sur le site d'Orange Partner, vous permettant de faire des tests sans être crédité. Cet outil s'appelle l'API explorer tool.
Dans le menu de gauche apparaissent les différentes API. Celle qui nous intéresse est donc la SMS API et sa fonction sms.sendSMS. Lorsque vous cliquez sur cette fonction, un formulaire apparait sur la partie droite de la fenêtre. Remplissez simplement les champs correspondant au numéro du correspondant, au corps du message, ... puis cliquez sur le bouton Send. Ici, aucun SMS ne sera envoyé, mais la page de retour sera affichée, vous permettant de voir les différents codes d'erreur. C'est indispensable pour votre futur programme PHP, afin de traiter tous les cas d'erreur.
La liste complète des codes de retour est disponible ici : codes de retour.
Quatrième étape : exemple avec PHP
Dans cette dernière partie, nous allons créer une classe PHP permettant d'envoyer des SMS à un numéro donné.
Le principe est simple :
- Mise en forme du message : encodage pour URL et limitation à 160 caractères
- Appel de l'URL
- Analyse du résultat : si le code retourné est égal à 200, le SMS a bien été envoyé, sinon il y a eu une erreur
Voilà à quoi pourrait ressembler notre classe (n'oubliez pas de modifier <KEY> par votre access key) :
Commentaires
gba
- 22/01/2012 à 23:11:01 - # 1je n'arrive pas à envoyer les sms avec ce code
Nouveau commentaire