Ce post expose une (mini) web application dont le principe consiste à récupérer un numéro de mobile et lui envoyé un lien vers un site mobile sous forme d’un SMS si celui-ci est identifié comme un numéro SFR. En parallèle, on conserve l’ensemble des numéros saisis dans la base de données de Google.
Vous pouvez directement tester cette webapp en ligne sur http://appliscopepromo.appspot.com
Il s’agit d’un prototype qui peut surement être largement amélioré et dont le but principal est uniquement d’illustrer l’usage des API SFR en mode REST depuis le cloud.
Techniquement, le serveur est hébergé dans le Google App Engine (GAE). L’interface, réduite au minimum, est réalisée avec le Google Web Toolkit (GWT) sur la base de l’exemple standard proposé à la création du projet sous Eclipse. On s’appuie sur la base de données du GAE (Big Table) à travers le Framework Objectify (très simple à mettre en œuvre) pour stocker les numéros de mobiles.
L’appartenance du numéro de mobile à SFR et l’envoi du SMS depuis le serveur sont assurés par SFR API (http://api.sfr.fr/). Une classe réduite au minimum permet d’encapsuler les méthodes REST construites via l’API Test Tool. L’instanciation de cette classe nécessite de disposer d’un Token valide, obtenu par une simple inscription à SFR API.
L’algorithme est simple. A la suite du déclenchement du bouton « Envoyer », on invoque la méthode sendNumberToServer(). Cette méthode côté client vérifie le format du numéro puis instancie la classe GreetingServiceImpl côté serveur contenant l’essentiel du traitement.
Depuis cette classe :
- on enregistre le numéro saisie la base de données Google
- on ouvre le service SFR API avec le token (qui reste caché puisque sur le serveur)
- on identifie l’opérateur du numéro (méthode isSFR)
- on envoi le SMS contenant le message principal si l’opérateur est bien SFR (méthode SendSMS)
Vous pouvez trouver ci-dessous quelques éléments du code ainsi que le projet réalisé sous Eclipse en attache (après retrait des librairies pour respecter la taille maximal de 512 ko)
Partager