Uploader une image en synchrone sur Flickr avec PHPFlickr et Oauth

Nous allons voir aujourd'hui comment ajouter en synchrone (l’exécution du PHP se met en pause durant l'upload) des photos / images dans un album Flickr. Nous nous servirons de l'authentification Oauth ainsi que de la méthode sync_upload().

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 découvrirons la méthode sync_upload. Elle nous permettra d'uploader des nouvelles photos sur Flickr.

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.

Attention ! Il est impératif d'utiliser la classe PHPFlickr mise à disposition sur ce site. Si vous avez trouvé PHPFlickr sur un autre site que DantSu.com, il ne contiendra pas l'authentification Oauth.

Détails de sync_upload()

Cette méthode permet d'uploader en synchrone une images sur le compte Flickr de l'utilisateur authentifié. Durant l'upload, l'exécution du PHP sera donc mis en pause. Elle requiert un paramètre obligatoire et 6 paramètres optionnels.

$f = new phpFlickr($cle_api, $cle_secret_api);
$f->setOauthToken($oauth_token, $oauth_secret);
$id_flickr = $f->sync_upload($url_img_src, $titre, $description, $tags, $is_public, $is_friend, $is_family);
  • $url_img_src (obligatoire) URL de l'image source (L'image qui sera envoyée sur Flickr).
  • $titre (optionnel) Titre.
  • $description (optionnel) Description.
  • $tags (optionnel) Liste des tags séparés par un espace.
  • $is_public (optionnel) Le public peut il voir votre photo? 1=Oui, 0=Non.
  • $is_friend (optionnel) Les amis peuvent ils voir votre photo? 1=Oui, 0=Non .
  • $is_family (optionnel) La famille peut elle voir votre photo? 1=Oui, 0=Non .

Cette méthode retourne, en cas de réussite, l'id de la photo qui vient d'être envoyée.

Comment utiliser sync_upload()

Voici un exemple qui uploadera une image sur Flickr et qui la rangera dans un album.

$f = new phpFlickr($cle_api, $cle_secret_api);
$f->setOauthToken($oauth_token, $oauth_secret);
$id_photos = $f->sync_upload($url_img_src, $titre, $description, $tags, $is_public, $is_friend, $is_family);
$f->photosets_addPhoto($id_album, $id_photos);

Une fois la photo uploadée, $id_photos contient l'id de la photo. Cela nous permet de la rangée dans l'album $id_album grâce à photosets_addPhoto().