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
  1. 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 ?
  2. 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.

  1. Le paramètre d'entrée de Define est une chaine unique (word). Schématiser la structure (imbrication des champs) de la réponse.
  2. 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).
  3. 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

  1. Analyse du WSDL Analyser le WSDL situé à: https://www.esendex.com/secure/messenger/soap/SendService.asmx?WSDL
  2. 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 ?
  3. 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é.