Authentification à Flickr via API, Oauth et PHPFlickr

Bon nombre de possibilités nécessitent une authentification à Flickr. C'est pourquoi dans ce billet, je vous apprendrai à vous authentifier à Flickrvia son API et le protocole Oauth.

Introduction

Je ne vais pas représenter Flickr. Pour ceux qui ne connaissent toujours pas, rendez vous sur le billet lister les albums d'un utilisateur Flickr. Aujourd'hui, nous nous authentifierons à Flickrgrâce à son API et Oauth. Vous pourrez ainsi lier les comptes de votre application aux comptes Flickr.

Pré-requis

Avant de commencer, il vous faudra une clé API Flickr. Comment récupérer une clé API Flickr?

  • Rendez-vous sur Flickr.com/services/api/keys/.
  • Authentifiez-vous si ce n'est pas déjà fait.
  • Choisissez "Application commerciale" ou "Application non commerciale" suivant votre projet.
  • Complétez le formulaire en donnant un nom et une description à votre projet. Ces informations seront communiquées aux utilisateurs au moment où ils autoriseront leur authentification.
  • Récupérez les deux clés (Une nommée "clé" et l'autre "secret")

Il vous faudra aussi la classe PHPFlickr. Je mets donc à votre disposition sur ce billet une version améliorée ( par mes soins ^^ ) de PHPFlickr. Dans cette version, j'ai implémenté plusieurs méthodes pour faciliter l'authentification Oauth. Pour rappel, PHPFlickr est une classe php dédiée aux développements d'applications utilisant l'API de Flickr. Cette classe se trouve en libre téléchargement sur http://phpflickr.com/ (la version téléchargeable sur ce site ne gère pas l'authentification Oauth).

Comment récupérer les jetons Oauth?

La méthode getRequestToken() requiert un argument. Cette méthode envoie le visiteur vers la page de Flickr permettant de valider l’accès de votre application aux données de son compte.

$f = new phpFlickr($cle_api, $cle_secret_api);
$f->getRequestToken($callback);

Une fois la validation effectuée,la page répondant à l'URL $callback devra exécutergetAccessToken(). Cette méthode ne requiert aucun argument. Vous pourrez ensuite récupérer les jetons définitifs grâce à getOauthToken() et getOauthSecretToken() pour les stocker dans votre base de données.

$f = new phpFlickr($cle_api, $cle_secret_api);
$f->getAccessToken();
$OauthToken = $f->getOauthToken();
$OauthSecretToken = $f->getOauthSecretToken();

Voila, vous savez maintenant récupérer les jetons d'une authentification Oauth.

Comment utiliser les jetons précédemment acquis?

C'est bien beau d'avoir des jetons mais il faut savoir s'en servir par la suite. Ne vous inquiétez pas, ce n'est pas bien compliqué non plus. Après avoir créé une nouvelle instance de phpFlickr, appelez la méthode setOauthToken(). Cette méthode requiert deux arguments : $oauth_token (Le jeton d'authentification Oauth) et $oauth_secret (Le jeton secret d'authentification Oauth). Les méthodes seront ensuite appelées en authentifiées.

$f = new phpFlickr($cle_api, $cle_secret_api);
$f->setOauthToken($oauth_token, $oauth_secret);
$id_flickr = $f->sync_upload('photos/'.$id.'.jpg', $title, $description, $tags, 1, 1, 1);

Pour plus de renseignements sur sync_upload(), lisez l'article Uploader une images sur Flickr avec PHPFlickr et Oauth.

C'est fini pour cette fois, je vous laisse retourner à vos projets. A bientôt pour de nouvelles aventures! ^^