Accueil du site > Flickr Store > Authentifier notre application sur Flickr

Authentifier notre application sur Flickr

vendredi 19 décembre 2008, par Fil

Si l’on souhaite exploiter nos photos perso sur notre compte, notamment pour lire les photos privées ou en ajouter de nouvelles, il faut maintenant pouvoir s’authentifier. C’est la partie la plus compliquée du script.

Le principe consiste à demander un code frob, puis à le faire autoriser par l’utilisateur. Une fois ce frob autorisé, on obtient un token, qu’on stocke précieusement car il constitue notre ticket d’entrée authentifiée sur l’API.

Nous allons enregistrer notre application comme « Desktop App », en cochant la case correspondante dans les réglages de l’API key sur le site Flickr :

Tout d’abord, une fonction pour écrire dans un fichier :

et voici notre code pour demander un frob, donner à l’utilisateur l’url de validation, puis au tour suivant demander un token :

On obtient alors notre sésame :

Array
(
   [token] => 72157611262255979-3d38abdacbcf5df0
   [perms] => delete
   [user] => Array
       (
           [nsid] => 82626280@N00
           [username] => Fil+
           [fullname] => Fil
       )
)

Les différents niveaux de permission sont read, write, delete. Ici on choisit delete pour avoir les coudées franches, mais si votre application ne fait que de la lecture des données, il est préférable d’utiliser read, et si elle modifie (par exemple titre ou tags) mais n’efface jamais de photo : write suffit.


A noter : on enregistre le frob puis le token dans le répertoire de préférences ~user/.flickrstore/ ; en cas d’échec il faut effacer ces fichiers pour recommencer.

L’authentification décrite ici correspond à l’authentification « desktop » pour un script lancé en ligne de commande. Pour l’authentification « web », c’est différent : le token sera enregistré dans la session de l’utilisateur ; on pourra diriger automatiquement le navigateur sur l’URL de confirmation, qui le redirigera à son tour, après avoir validé le frob, sur une adresse callback qu’on aura fournie dans les réglages de l’API key sur le site.