Notre premier envoi de SMS
Maintenant que nous avons tout ce qui est nécessaire pour travailler avec l’API nous allons pouvoir envoyer notre premier SMS. Pour envoyer un message, nous avons besoin de 4 éléments:
- La clef d’API,
- Le contenu du message,
- Le numéro du destinataire (au format international : 336xxxxxxxx),
- L’URL d’appel de l’API Orange SMS (http://sms.alpha.orange-api.net/sms/sendSMS.xml).
Une fois qu’on a tout cela, il n’y a plus qu’a faire un appel de l’URL de cette façon: http://sms.alpha.orange-api.net/sms/sendSMS.xml?id=$apiKey&to=$recipient&content=$message.
Voilà, c’est pas beaucoup plus compliqué que cela. Ensuite, il ne reste plus qu’a interpréter la réponse de l’application d’Orange. C’est une réponse XML sous cette forme:
<response> <status> <status_code>200</status_code> <status_msg>ok</status_msg> </status> </response> |
status_code contient un code numérique qui représente le statut de l’opération (voir la figure ci-dessous). status_msg contient une rapide description de la situation. La figure, ci-dessous, fait état des différentes réponses possibles:
Figure 5: Liste des codes de réponse de l’API Orange
Voici maintenant le code de l’application finalisée (qui ne fait qu’envoyer un simple SMS et parse le code de réponse de l’API Orange):
$apiKey = "956e822aaa"; $message = "Salut a toi !"; $recipient="33612915700"; // Rappel, la taille maximale d'un message est de 160 caractères $message = substr($message,0,159); // On encode pour passer via l'URL $message = urlencode($message); $apiUrl = "http://sms.alpha.orange-api.net/sms/sendSMS.xml?id=$apiKey&to=$recipient&content=$message"; // On appelle l'API $apiResponse = file_get_contents($apiUrl); // On récupère la réponse XML $apiResponseXml = simplexml_load_string($apiResponse); // On traduit le code réponse switch($apiResponseXml->status->status_code) { case '200'; $return = "Message bien envoyé"; break; case '400'; $return = "Aucune clef d'API"; break; case '401'; $return = "Clef d'API interdite"; break; case '420'; $return = "Quote d'envois dépassé"; break; case '43O'; $return = "Aucun message transmis"; break; case '431'; $return = "Aucun déstinataire"; break; case '440'; $return = "Message trop long"; break; case '441'; $return = "Destination non autorisée"; break; case '500'; $return = "Erreur interne"; break; default: $return = "Code de réponse inconnu: ".$apiResponseXml->status->status_code; } echo $return; |

