TUTORIEL TECHNOS .NET 
Exploiter l'API Flickr avec ASP.Net
Comment contacter le site communautaire Flickr pour en exploiter le contenu, notamment afficher des photos selon certains critères : utilisateur, tags, date... (10/05/2006)
Flickr a rapidement pris le dessus des sites de stockage et de partage de photos par son approche résolument accessible pour l'utilisateur lambda, et son ouverture aux utilisateurs avertis grâce, notamment, à son API. Celle-ci propose plus de 60 méthodes pour accéder aux données disponibles sur le site. Pour accéder à cette API, de nombreux kits de développement ont été conçus pour des développeurs tiers, pour plusieurs langages. Nous utiliserons ici le bien nommé Flickr.Net.

Outre le fait de disposer de cette bibliothèque (téléchargeable librement), il vous faut impérativement obtenir une clef d'utilisation de l'API, qui vous donnera également accès à un "secret partagé" (shared secret, sorte de mot de passe personnel). En effet, à l'instar de l'API Google (lire notre article du 19/11/02), l'API Flickr est à usage limité lorsqu'il s'agit de projets personnels. Faites donc en sorte de disposer de cette clef avant d'aller plus loin.

Pour exploiter Flickr.Net au sein de Visual Studio (ou, plus accessible, Visual Web Developper 2005 Express) et profiter d'IntelliSense (aide en ligne des produits Microsoft), il vous faut ajouter Flickr.Net à votre projet. Pour ce faire, ouvrez le menu contextuel du projet dans lequel vous voulez utiliser la bibliothèque, et choisissez Add Reference.... Dans la fenêtre qui s'ouvre alors, choisissez l'onglet Browse et sélectionnez le fichier FlickrNet.dll, situé dans la hiérarchie /bin/Release/ de l'archive que vous avez téléchargé sur le site du projet (à l'heure de l'écriture, FlickrNet_src_2.0.0.zip).

Alternativement, si vous n'utilisez pas Visual Studio, vous pouvez simplement copier la DLL dans un nouveau dossier /Bin que vous aurez créé dans le dossier de votre site Web.

Premier test
La première chose à faire est de vérifier que vous entrez bien en contact avec Flickr depuis votre projet ASP.Net. Pour ce faire, l'API dispose de deux méthodes de test : l'une pour le simple contact, l'autre pour vérifier le bon fonctionnement de l'authentification. C'est la première que nous utiliserons ici : flickr.test.echo. Cette méthode est adaptée par FlickrNet en tant que méthode TestEcho() de la classe Flickr(). Pour y accéder, donc, le code est de la sorte : d'abord, créer l'objet Flickr() avec votre clef d'API, puis appeler la méthode. Sous Visual Studio, IntelliSense facilite grandement la découverte des méthodes offertes par FlickrNet.

Flickr f = new Flickr("5b4e7798882076719167ac6fd010b307");
Response.Write(f.TestEcho("foo", "bar").ToString);


A partir du moment où cette connexion est validée, travailler avec l'API, via FlickrNet, devient extrêmement simple. Le principal obstcable à l'utilisation de FlickrNet est l'absence de documentation complète, mais l'aide IntelliSense palie largement ce manque.

Afficher les images d'un utilisateur
Voyons par exemple comment afficher les 25 dernières images mises en ligne par un utilisateur Flickr. Il nous faut tout d'abord retrouver l'identifiant Flickr de cet utilisateur (qui prend la forme 37509383@N00, soit à l'aide de son adresse e-mail, soit par son nom d'utilisateur (qui n'est pas le nom de son compte). Il est préférable de se reposer sur la première option, car le nom d'utilisateur est susceptible de changer beaucoup plus souvent.

FlickrNet nous donne accès à une classe User() pour gérer les utilisateurs. Après en avoir instancié un objet, nous pouvons récupérer l'identifiant grâce à la méthode PeopleFindByEmail().

Flickr f = new Flickr("5b4e7798882076719167ac6fd010b307");
User u = f.PeopleFindByEmail("ceci@est.unmailvalide.si");


L'identifiant sera utilisé pour préciser les options de recherche. FlickrNet propose en effet une classe PhotoSearchOptions() qui nous autorise à cibler plus soigneusement les photos désirées. L'identifiant utilisateur est une chose, mais nous pouvons également limiter le nombre de photos à afficher, les tags correspondant aux photos cherchées, ou l'ordre de tri.

PhotoSearchOptions o = new PhotoSearchOptions();
o.UserId = u.UserId;
o.Tags = "pariscarnet";
o.PerPage = 25;
o.SortOrder = PhotoSearchSortOrder.DateTakenDesc;


Ceci fait, les options sont intégrées à notre recherche, dont nous tirerons une collection de photos :

Photos p = f.PhotosSearch(o);

  Forum

Réagissez dans les forums de JDN Développeurs

Cette collection sera parcourue par une boucle foreach(), dont nous extrairons les données dont nous avons besoin (ici, juste l'URL de la page Web de la photo, et celle de sa miniature carrée).

foreach (Photo ph in p.PhotoCollection) {
  Response.Write("<a href='"+ph.WebUrl+"'>
    <img src='"+ph.SquareThumbnailUrl+"' border='0'/></a>");
  }
 
Xavier Borderie, JDN Développeurs
 
Accueil | Haut de page
 
 





Quand achetez-vous le plus en ligne ?
Du lundi au vendredi
Le samedi
Le dimanche

Tous les sondages