Tutoriel – Exploiter Ziki avec Windev

Il est possible assez simplement d’exploiter les données de Ziki via Windev grâce à l’API mise à disposition. L’essentiel est de bien prendre en main les fonctions de requête Http et la manipulation des fichiers XML. 1. Faire une recherche de personne et récupérer les informations disponibles. Trois possibilités de recherche : Par Nom Par Prénom Par Nom et Prénom Pour effectuer ces recherches, il faudra donc créer deux champs de recherche, nom et prénom. Pour traiter la recherche, il faudra tester quelles sont les champs renseignés pour envoyer la bonne requête. Un test de chaine vide sur les champs de saisie suffira. Dans le code suivant, SNomZiki est le champs de saisie Nom SPrenomZiki est le champs de saisie Prénom monresultat est une variable de type chaîne SI SNomZiki <> “” ET SPrenomZiki <> “” ALORS HTTPRequête(”http://www.ziki.com/fr/web.xml?first_name=” + SPrenomZiki + “&last_name=” + SNomZiki) monresultat = HTTPDonneRésultat(HTTPRésultat) fSauveTexte(”C:Tempresultat.xml”, monresultat) SINON SI SNomZiki <> “” ET SPrenomZiki = “” ALORS HTTPRequête(”http://www.ziki.com/fr/web.xml?last_name=” + SNomZiki) monresultat = HTTPDonneRésultat(HTTPRésultat) fSauveTexte(”C:Tempresultat.xml”, monresultat) SINON SI SNomZiki = “” ET SPrenomZiki <> “” ALORS HTTPRequête(”http://www.ziki.com/fr/web.xml?first_name=” + SPrenomZiki) monresultat = HTTPDonneRésultat(HTTPRésultat) fSauveTexte(”C:Tempresultat.xml”, monresultat) FIN FIN FIN Déroulement de l’action de recherche : Test du cas d’emploi et envoi de la requête formatée correctement. La requête est la même pour chaque cas, seul les paramètres de recherche change. La base est : http://www.ziki.com/fr/web.xml? Les paramètres sont : Pour le prénom : first_name= //suivi de votre variable prénom Pour le nom : last_name= //suivi de votre variable Nom Le signe & lie les paramètres de recherche entre eux dans le cas d’une recherche combinée Nom + Prénom. Après cela, on stocke le résultat renvoyé dans une variable de type chaîne (chaîne = HttpDonneResultat(HttpResultat)), ici monresultat et on sauvegarde cette chaîne dans un fichier xml grâce à la fonction FSauveTexte(chemin + nom du fichier). 2. Tirer des informations du résultat obtenu Afin d’exploiter le résultat il nous faut initialiser une vue sur le document XML grâce à la fonction XMLDocument(Nom à attribuer à cette vue, source xml). Dans le cas de mon exemple cela donne : XMLDocument(”ZIKI”,monresultat) L’affectation de la chaîne monresultat comme source xml est possible puisque à aucun moment cette chaîne n’a été modifiée depuis le début du traitement. 2.1 Récupération des informations. Les informations que nous souhaitons exploiter dans le résultat retourné et sur lequel nous avons ouvert une vue précédemment sont stockés entre balise. Le tout est de connaitre ces balises afin d’axer notre recherche. Les balises utilisées par Ziki response pages — Page Courante — Nombre de page de résultats trouvée, une page peut contenir 16 résultats Ziki différents /pages zikis ziki — pseudo — Prénom — Nom — Ville — Code Pays (FR pourFrance par exemple) Thumbnail http://www…. — Indique l’url du thumbnail de l’utilisateur si une photo existe /Thumbnail URL –Url du profil de l’utilisateur — Url de l’XML de l’utilisateur /URL /Ziki /Zikis /Response Maintenant que nous connaissons les informations de base que nous pouvons rechercher, passons à la méthode de recherche en elle-même grâce au fonction de navigation, de recherche, et d’extraction de données dans les flux XML de Windev. XMLRacine(”ZIKI”) XMLRecherche(”ZIKI”,”la balise à rechercher”,XMLBalise+XMLSousElément,XMLExact+XMLIgnoreLaCasse) SI XMLTrouve(”ZIKI”) ALORS XMLFils(”ZIKI”) mavariable = XMLDonnée(”ZIKI”) FIN Premièrement, on se positionne en haut de notre vue xml afin que la recherche se déroule hiérarchiquement et on donne les indications de recherche, ici on effectue une recherche sur notre vue (”ZIKI”), “le nom de la balise à rechercher”, et les options de recherche. L’utilisation de XMLExact+XMLIgnoreCasse est possible lorsque l’on sait que chercher. Il est également possible de chercher directement dans la valeur des balises et des attributs en utilisant l’option de recherche XMLValeur. Ensuite, nous poursuivons le traitement seulement si un résultat est renvoyé. Si tel est le cas, on se positionne sur le fils XML pour récupérér la valeur, même si ce n’est pas à chaque fois indispensable cela permet de prévoir les cas où ça l’est, et on attribue le résultat de la recherche à une variable que vous aurez créé. Pour les noms, prénoms, ville et pseudo il est intéressant d’attribuer la variable qui va contenir le résultat par cette méthode : mavariable = UTF8VersChaîne(XMLDonnée(”ZIKI”),alphabetAnsi) Cela permet d’obtenir un résultat interprétant convenablement les accents et autres caractères spéciaux. 2.2 Afficher l’image Ici le traitement diffère légèrement, la recherche sur la balise est classique et renvoie l’Url de l’image utilisateur que nous devrons exploiter afin de pouvoir l’afficher dans un champs image. XMLRecherche(”ZIKI”, “thumbnail”, XMLBalise+XMLSousElément, XMLExact+XMLIgnoreLaCasse) SI XMLTrouve(”ZIKI”) ALORS XMLFils(”ZIKI”) monurl = XMLDonnée(”ZIKI”) Afin de pouvoir afficher l’imag, il va nous falloir l’enregistrer au préalable. Pour ce faire, nous allons créer un fichier Images.gif via la fonction FOuvre avec l’option FoCréation. // Ouverture du fichier “C:MesImagesImages.GIF” IdFichier = fOuvre (”C:TempImages.GIF” , foCréation ) SI IdFichier <> – 1 ALORS Nous allons ensuite, envoyer une requête HTTP sur l’Url récupérée et stockée dansune variable en fin de recherche (monurl). Il nous faudra déterminer si la requête a abouti. // Récupération de l’image ResAppel = HTTPRequête ( monurl ) Si la requête est un succès, nous allons écrire son résultat directement dans le fichier Images.gif que nous avons créé via la fonction FEcrit avec la valeur HTTPDonneRésultat. Si la requête a échoué, nous n’écrivons rien et dans les deux cas, il ne faut pas oublier de fermer le fichier Images.gif créé afin de ne pas bloquer les futures utilisations de celui-ci. SI ResAppel = Vrai ALORS // Enregistrement de l’image récupérée dans le fichier fEcrit(IdFichier, HTTPDonneRésultat()) FIN // Fermeture du fichier fFerme ( IdFichier ) FIN On peut maintenant afficher notre image dans un champs prévu à cet effet. Iziki est ici un champs image. IZiki = “C:TempImages.GIF” FIN La récupération et l’affichage des images ne posent plus de soucis. Voici le code complet pour une vision d’ensemble. XMLRecherche(”ZIKI”, “thumbnail”, XMLBalise+XMLSousElément, XMLExact+XMLIgnoreLaCasse) SI XMLTrouve(”ZIKI”) ALORS XMLFils(”ZIKI”) monurl = XMLDonnée(”ZIKI”) // Ouverture du fichier “C:MesImagesImages.GIF” IdFichier = fOuvre (”C:TempImages.GIF” , foCréation ) SI IdFichier <> – 1 ALORS // Récupération de l’image ResAppel = HTTPRequête ( monurl ) SI ResAppel = Vrai ALORS // Enregistrement de l’image récupérée dans le fichier fEcrit(IdFichier, HTTPDonneRésultat()) FIN // Fermeture du fichier fFerme ( IdFichier ) FIN IZiki = “C:TempImages.GIF” FIN 3. Autres balises et recherche possible. Maintenant que vous êtes à l’aise avec la recherche et le traitement des informations, voici de quoi vous occuper encore un peu. Une requête effectuée de cette manière revoie un fichier Xml beaucoup plus complet : http://www.ziki.com/fr/people/”PSEUDO”.xml Les balises de ce fichier Xml : 0000-00-00 LinkedIn Dailymotion Facebook C’est un exemple d’ossature, celle-ci diffère bien sûr suivant les profils utilisateurs que vous recherchez. Vous pouvez également effectuer ces recherches : Fans d’un Ziki : http://www.ziki.com/fr/people/”PSEUDO”/favorites/fans.xml Connections d’un Ziki : http://www.ziki.com/fr/people/”PSEUDO”/favorites/connections.xml (Prochainement) Pour ces deux recherches, vous pouvez ajouter ?page=”numero de la page que vous souhaitez consulter” en fin d’url afin de naviguer dans les pages de résultats. Une dernière pour la route, la recherche par mot clé simple et composée. Simple : http://www.ziki.com/fr/people.xml?tags=”MOT CLE 1″ Composée : http://www.ziki.com/fr/people.xml?tags=”MOT CLE 1″ + “MOT CLE 2″ Il va de soi qu’il va vous falloir intégrer ces traitements dans des boucles pour des recherches multi-résultat et que les extractions XML des fonctions Windev seraient une piste à approfondir afin de, par exemple, créer une vue par page puis par résultat. Enfin, pour approfondir le sujet, je vous conseille d’aller jeter un œil par là Et bien voilà. Je précise que c’est une manière de coder sous windev avec l’API de ZIKI et certainement ni la seule, ni la meilleure.

Laisser une réponse