rss
twitter
  • Showcase
  • Carrières
  • Support
  • GitLab
  • Espace client
  • Contact

Inclure la galerie photo d’un set Flickr sur votre site

0

Flickr propose un lien de partage pour « embed » un slideshow n’importe où. Fine. Mais rien n’est proposé pour inclure une galerie.

Il faut donc passer par l’API Flickr.

INDEX

Méthode appropriée dans l’App Garden de l’API Flickr

Nous allons interroger la méthode flickr.photosets.getPhotos lire la doc pour récupérer les photos de ce magnifique set (album) de photos de vélos vus à Tokyo.

Pré-requis

– Tout d’abord, connectez-vous à votre compte Flickr
– Récupérer votre Secret Key à partir de cette URL
– Créez un album (set) de photos

Étape 1 : connexion à l’API

Ici, on voit que l’on veut récupérer les 15 premières photos (15 photos per_page, et page 1) :

$params = array(
        'api_key'               => 'xxx',
        'method'                => 'flickr.photosets.getPhotos',
        'photoset_id'   => 'zzz',
        'extras'                => 'original_format',
        'format'                => 'php_serial',
        'per_page'              => 15,
        'page'          => 1
);
$encoded_params = array();
foreach ($params as $k => $v){
        $encoded_params[] = urlencode($k).'='.urlencode($v);
}
// pour vérifier que ça fonctionne :
echo "<pre>";
print_r($encoded_params);
echo "</pre>";

Cela nous donne une réponse du genre :

Array
(
    [0] => api_key=xxx
    [1] => method=flickr.photosets.getPhotos
    [2] => photoset_id=zzz
    [3] => extras=original_format
    [4] => format=php_serial
    [5] => per_page=15
    [6] => page=1
)

Jusqu’ici, tout va bien.

Étape 2 : récupérer les photos du set

$ch = curl_init();
$timeout = 5; // 0 = pas de timeout
curl_setopt ($ch, CURLOPT_URL, 'https://api.flickr.com/services/rest/?'.implode('&', $encoded_params));
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
$rsp_obj = unserialize($file_contents);

On obtient la liste des photos, ou plutôt des paramètres de chaque photo.
Notamment :
– Sur quel serveur est la photo
– Son ID
– Son titre
– Etc.

Étape 3 : affichage des photos

Nous allons maintenant exploiter ces informations pour afficher les photos dans de simples balises HTML img :

if ($rsp_obj['stat'] == 'ok') {
        $photos = $rsp_obj["photoset"]["photo"];
        foreach($photos as $photo) {
                $farm              = $photo['farm'];
                $server            = $photo['server'];
                $photo_id          = $photo['id'];
                $secret            = $photo['secret'];
                $photo_title       = $photo['title'];
                echo '<img src="https://farm'.$photo['farm'].'.static.flickr.com/'.$photo['server'].'/'.$photo['id'].'_'.$photo['secret'].'_t.jpg" alt="'.$photo['title'].'">';
        }
} else {
        echo "Flickr indisponible !";
}

Résultat

Et voilà le travail… à vous d’imaginer la CSS qui va avec !

DATE 16 Août 2012
by : Germain
Author / Auteur

Social Share / Partager

    Leave a Reply / Répondre Annuler la réponse

    *
    *

    More in Back-end : PHP, CMS

    • Quel php.ini (MAMP ou Linux), quelle valeur de phpinfo() ?
    • Trucs utiles pour WordPress
    • Les bons headers PHP pour envoyer du CSV compatible Excel en UTF8
    • Imagemanager(tiny Mce) et kohana
    • Récupérer, vérifier et exploiter une date

    Search the blog

    Blog categories

    • Workflow (1)
    • Front-end : HTML, CSS (13)
    • Front-end : javascript, jQuery (33)
    • Back-end : PHP, CMS (42)
    • Back-end : SQL, MySQL (20)
    • Sysadmin : Linux, Apache, GIT (75)
    • Designers : tools, advice (2)
    • Desktop : OS X (37)
    • Desktop : Microsoft (12)
    • Uncategorized (8)

    ITALIC™ Resources

    • Paramètres de connexion au serveur mail
    • Graphistes : séduire un développeur web
    • Dév front : nos bonnes pratiques
    • Mailing : nos (bonnes ?) pratiques
    • Environnement de travail Mac

    Recent posts

    • Autoriser le chargement de contenus mixtes non-https dans Chrome (Mac)
    • Afficher les logs MySQL
    • Recevoir un mail lors de la connexion root à un serveur
    • Changer l’interclassement de plusieurs tables MySQL à la fois (ou presque
    • Maildev : tester l’envoi de mails durant ses développements
    © 2008-2017 ITALIC™ • 8 bis rue Abel • 75012 PARIS • Tel +33 (0)1 48 44 46 35 • RCS PARIS 508 228 772 • Powered by WordPress & GoodLayers
    Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site web.
    Cookie settingsACCEPTER
    Manage consent

    Privacy Overview

    This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
    Necessary
    Toujours activé
    Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
    Non-necessary
    Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
    Enregistrer & appliquer