Note: les exercices demandent d'écrire les programmes princpalement en PHP. Vous pourrez vous aider
des explications suivantes sur les tableaux en PHP si vous en avez besoin:
http://icps.u-strasbg.fr/~genaud/courses/webtech/php/ch03.html#id2608323.
Utilisation d'un service commercial de géolocalisation
La société FraudLabs propose un ensemble (payants) de services web
ayant trait à la géo-localisation. Ceux-ci peuvent par exemple être utilisés pour
vérifier la validité d'une adresse saisie par un client, pour localiser géographiquement
un client d'après l'IP de sa machine, ...
On souhaite utiliser le service de Géolocalisation qui à une adresse IP rend les coordonnées géographiques (lattitude, longitude) de la machine.
Examiner la description WSDL du service :
http://v1.fraudlabs.com/fraudlabswebservice.asmx?wsdl
- Analyse du WSDL
- Cherchez le nom de la méthode unique proposée par ce service.
- Cherchez les entrées et sorties de cette méthode.
Quel est le nom des entrées, quel est le nom des sorties ?
-
-
Quels sont les paramètres (nom et types) qui composent l'entrée ?
-
Quels sont les champs de la sortie ?
- Ecriture d'un client PHP :
- Demander un numéro de license gratuit : http://www.fraudlabs.com/freelicense.aspx?PackageID=1.
- Vous disposez d'un interpréteur PHP5 (taper php ou php5) compilé avec le support SOAP (taper php -i pour le vérifier).
- Appeler le web-service: construisez un tableau associatif pour les paramètres d'entrée ("IP" et "LICENSE").
- Afficher la réponse: si le champ Message n'est pas vide, afficher les valeurs de latitude, longitude, sinon afficher l'erreur.
Utilisation d'un dictionnaire
Recherche dans des dictionnaires.
Le noeud SOAP
http://services.aonaware.com/DictService/DictService.asmx
fournit différents services.
On souhaite utiliser la méthode Define qui rend la définition d'un mot anglais.
- Le paramètre d'entrée de Define est une chaine unique (word).
Schématiser la structure (imbrication des champs) de la réponse.
- Ecrire un client PHP qui utilise cette méthode.
Vous pouvez utiliser le WSDL disponible :
http://services.aonaware.com/DictService/DictService.asmx?WSDL
.
(Conseil : vous devrez utiliser 3 niveaux d'itérations pour parcourir le résultat contenu dans DefineResult ; la primitive foreach ($tableau as $cle => $val) {} est adéquate pour cela. La primitive var_dump($variable) ou print_r($variable) est également d'un grand secours pour analyser la structuration des données générée par la classe SoapClient).
- Question subsidiaire: Ecrire un client SOAP::Lite qui utilise cette méthode.
Utilisation d'un service commercial d'envoi de SMS
La société Esendex propose un services web
permettant l'envoi massif de SMS.
Le service est à
https://www.esendex.com/secure/messenger/soap/SendService.asmx
- Analyse du WSDL
Analyser le WSDL situé à:
https://www.esendex.com/secure/messenger/soap/SendService.asmx?WSDL
-
L'authentification est attendue dans l'entête.
Regardez dans le WSDL comment est construit le type
MessengerHeader utilisé pour l'entête.
Comment allez vous le construire en PHP ?
-
Ecrire le programme PHP construisant l'appel de la méthode SendMessageFull().
Pour faire des tests, vous aurez besoin d'un compte utilisateur avec mot de passe
que je fournirai après vérification du code, le nombre d'essais associé au compte étant
limité.