Lister les albums d'un utilisateur Flickr

Flickr est une des références en matière de gestions et partages d'images & de vidéos en ligne. Au travers de plusieurs billets, nous découvrirons son API et les possibilités qu'elle offre. Pour ce premier billet, nous apprendrons à lister les albums d'un utilisateur Flickr simplement grâce à la classe PhpFlickr.

Introduction

Difficile de passer à côté de Flickr quand on pense à une application de partages et gestions d'images. Pour ceux qui ne connaissent que Picasa, dites vous que c'est assez similaire mais que c'est "Yahoo!" et non "Google" derrière. Sur cette application Web, vous pouvez gratuitement héberger vos photos, dessins, vidéos... les classer dans des répertoires, gérer leurs droits d’accès ainsi que plein d'autres options plus ou moins utiles. Donc avant de découvrir comment utiliser son API, je vous invite à vous inscrire sur Flickr, et à découvrir tout le potentiel que réserve cette application en la parcourant.

Toute la puissance de ce programme ne se résume pas à son site. Il vous suffira de simplement survoler la documentation de l'API de Flickr pour constater toutes les possibilités qu'elle offre. Vous pourrez intégrer dans vos propres sites Web tout un système pour gérer et diffuser vos images et vidéos, poster des commentaires et bien d'autres... Bref, je ne vous fais plus attendre, place au premier tutoriel.

Pré-requis

Les pré-requis seront identiques au billet Authentification à Flickr via API, Oauth et PHPFlickr. Je vous invite donc à consulter ce billet pour en savoir d'avantage sur les éléments nécessaires pour ce tutoriel.

Lister les albums d'un utilisateur de Flickr

Nous allons commencer simple avec ce premier billet concernant Flickr. Notre objectif est de lister les noms et vignettes des albums d'un utilisateur.

Récupérer la liste des albums dans un tableau PHP

$f = new phpFlickr($cle_api, $cle_secret_api);  
$photosets = $f->photosets_getList($ID_utilisateur);  
  • $cle_api et $cle_secret_api doivent contenir vos clés API Flickr
  • $ID_utilisateur doit contenir l'identifiant du compte qui possède les albums que l'on souhaite visionner. (Exemple d'identifiant utilisateur : "65160567@N03")

La méthode photosets_getList() retourne un tableau composé comme ceci :

     photoset  
     {  
          0  
          {  
               id :: ID de l'album  
               primary :: ID de l'icone  
               secret :: ID additionnel de l'icone  
               server :: Serveur contenant l'icone  
               farm :: Numéro du sous-domaine contenant l'icone  
               photos :: Nombre de photos contenu dans l'album  
               videos :: Nombre de vidéos contenu dans l'album  
               title :: Titre de l'album  
               description :: Description de l'album  
               needs_interstitial ::  
               visibility_can_see_set :: Album visible (1=oui, 0=non)  
               view_count ::  
               comment_count :: Nombre de commentaires sur l'album  
               can_comment ::  
               date_create :: Date de création en seconde  
               date_update :: Date de la dernière mis à jour en seconde  
          }  
          1...X {}  
     }  

Construire l'url de l'icône

Pour composer l'URL de l'icône d'un album il faut récupérer plusieurs éléments du tableau ci-dessus. Le code ci-dessous affichera l'URL de l'icône du premier album.

echo 'http://farm'.$photosets['photoset'][0]['farm'].'.static.flickr.com/'.$photosets['photoset'][0]['server'].'/'.$photosets['photoset'][0]['primary'].'_'.$photosets['photoset'][0]['secret'].'_s.jpg';  

Afficher la liste des albums sous forme d'icône

Grâce à tous les éléments vus ci-dessus, nous pouvons lister sans difficulté les albums d'un utilisateur.

$f = new phpFlickr($cle_api, $cle_secret_api);  
$photosets = $f->photosets_getList($ID_utilisateur);  
echo '<ul>';  
foreach ($photosets['photoset'] as $set_photo) {  
    echo '
    <li>
        <a href="http://www.flickr.com/photos/'.$ID_utilisateur.'/sets/'.$set_photo['id'].'/" title="'.$set_photo['title'].'">
            <img src="http://farm'.$set_photo['farm'].'.static.flickr.com/'.$set_photo['server'].'/'.$set_photo['primary'].'_'.$set_photo['secret'].'_s.jpg" alt="'.$set_photo['title'].'" />
            '.$set_photo['title'].'
        </a>
    </li>';  
}  
echo '</ul>';  

Conclusion

Nous voici à la fin de ce premier billet sur Flickr. Nous avons vu que grâce à la classe PhpFlickr, il était simple de lister les albums d'un utilisateur. Nous continuerons sur les prochains billets à explorer cette classe qui nous facilitera les tâches basiques comme celle que nous avons vues à l'instant.

Merci d'avoir lu ce billet jusqu'au bout. Si vous avez des questions ou des remarques, n'hésitez pas à me les communiquer par commentaires. Dans le prochain billet, nous poursuivrons notre lancée en listant les photos d'un album.

Ressources