Aller plus loin avec les API Flickr

Faisant suite à mon billet sur Flickr, je me suis dit que finalement je n’étais pas allé assez loin, ce que m’a confirmé le commentaire de Rudy.

Donc avouons le, Flickr n’est pas le service le plus innovant qui soit : pour rechercher dans le CCommon il faut passer par la recherche avancé, aps de psosibilité de faire des requêtes complexes, et surtout pas de RSS généré nativement suite à une recherche. C’était donc l’objet de mon précédent billet de détailler la démarche à suivre pour créer un RSS à partir d’un mot clé.

Mais détaillons un peu plus les API de Flickr et ce qu’elles permettent de faire.

Petit rappel tout d’abord pour construire une URL en GET (en gros une URL qui comporte des variables et leur valeur). Une URL en GET s’écrit en général comme suit :

www.nomdedomaine.com/repertoire/page.php?variable1=valeur_var_1&variable2=valeur_var_2&etc…

Le "?" veut dire que vous allez faire passer des variables

Chaque variable est ensuite appelé par son nom (variable1) et on lui affecte une valeur (=valeur_variable_1) et ensuite si l’on a besoin d’autres variables on les concatène avec "&"

Donc comment fonctionnent nos API Flickr.

Les API permettent donc d’appeler plusieurs variables dont les noms sont :

id / ids / tags / tagmode / format / lang.

Commençons par la id.

La variable ID permet de générer le flux RSS d’un utilisateur (ce qui est par ailleur sproposé par l’interface de Clickr et s’avère donc en soi relativement inutile à faire à la main…), mais bon soyons pédagogue.

Donc pour générer un flux d’un utilisateur c’est simple on prend l’url de génération de flux de Flickr à partir du domaine public :

http://api.flickr.com/services/feeds/photos_public.gne et on y adjoint donc la variable adéquate selon la syntaxe préalablement exposée. Prenons pour exemple le compte de monsieur Duperrin de Presse-Citron dont l’identifiant est 26829604@N03, on rajoutera donc "?id=26829604@N03".

Ce qui donne http://api.flickr.com/services/feeds/photos_public.gne?id=26829604@N03

Maintenant prenons un autre utilisateur, Jean François-Ruiz dont l’ID Flickr est : 26774092@N05.

On peut alors générer un flux commun mixant les deux utilisateurs mais en utilisant la variable ids à laquelle on affec tera deux valeurs avec une virgule ce qui donne pour la fin de l’URL : ?ids=26829604@N03,26774092@N05

Et vous pouvez faire ça avec autant de comptes utilisateurs juste en rajoutant une virgule et en rajoutant les identifiants Flickr des individus qui vous intéressent.

On peut donc faire de même avec les tags. Exemple concret avec les tags Web2 et RSS ce qui donnera une fin d’URL : "?tags=web2,RSS"

Concernant la présence de ces tags dans les différentes photos on peut également adjoindre l’opérateur OR (par défaut c’est le AND qui est appliqué donc ci -dessu le flux ramène toutes les photos ayant le tag RSS et web2). Pour utiliser OR on adjoint la variable tagmode )à laquelle on affectera la valeur "ALL" pour exiger la présence de tous les tags (ce qui est inutile puisque c’est l’opérateur par défaut) soit la valeur ANY pour avoir un tag ou l’autre.

Celà nous donne donc : "?tags=web2,RSS&tagmode=any" On voit d’ailleurs immédiatement la perte de pertinence, de nombreuses photos étant taguées avec RSS.

Dernières variables applicables "format" permettant de définir le format du flux rss généré par l’API sachant que par défaut il s’agit d’atom 1.0 et que les autres valeurs applicables sont :

rss_200 or rss2
atom_1 or atom
rss_091
rss_092 or rss
rss_100 or rdf
rss_200_enc

Si je veux un flux rSS 2.0 j’aurai donc une URL du type "?tags=web2,RSS&tagmode=any&format=rss2"

Les informaticiens pourront se faire plaisir avec cette dernière varaible puisqu’ils pourront générer des formats beaucoup plus exotiques dans une logique d’intégration tels que le SQL qui ira même jusqu’à créer la table mais aussi : php, php_serial, csv, json, yaml, cdf

Last but not least la variable de langue permettant de générer un flux RSS dans la langue que vous souhaitez (aattention cela ne permet pas de choisir la langue de l’utilisateur ou du tag mais juste la langue des textes de formatage généréq par Flickr par exemple en allemand on a : "hat ein Foto gepostet" et en français on aura : "a posté une photo".

Ce qui donnera par exemple pour l’allemand : "?tags=web2,RSS&tagmode=any&lang=de-de"

Et les autres langues accessibles sont :

de-de pour l’allemand
en-us pour l’anglais
es-us pour l’espagnol
fr-fr pour le français
it-it pour l’italien
ko-kr pour le coréen
pt-br pour le portuguais
zh-hk pour le chinois

Et tout ce que je viens de dire est détailléici pour le feed public mais c’est peut être bien avec les indications complémentaires :)

Par ailleurs de nombreux autres flux que le public sont accessibles : vous pouvez par exemple construire un flux des photos postées par les amis d’un individu.

Dernier point pour les veilleurs professionnels, si vous voulez attaquer ces flux à des cadences un peu élevées je vous conseille vivement de demander une clé API.

Une réponse à “Aller plus loin avec les API Flickr”

  1. Rudy 6 septembre 2009 à 20 h 59 min #

    Frédéric, Merci beaucoup pour ce rajout sur Flickr ; c’est intéressant ! Je vais tâcher dès demain de m’y mettre pour automatiser ma prise de connaissance sur le type de photos qui m’intéressent. Rudy.

Laisser une réponse