nyroBlog
Bannière NyroBlog, par Nyro
Image par Nyro - ?

Tag : FlickR

FlickR et moi

Il m'arrive souvent, quand j'ai envie de décompresser, d'aller faire un tour sur FlickR, pour "errer" en regardant de jolies Photos.

J'erre, allant de recherche en recherche, en parcourant les dernières images envoyées (et il y en a !), à regarder les dernières compositions de mes quelques amis inconnus (qui m'ont contacté en arrivant sur mon blog via google).

Bref, comme je suis tombé sur quelques trucs vraiment sympa et/ou intéressant (comme d'habitude), l'artiste qui est en moi a voulu vous en faire part, pour 2 raisons :

  1. ce n'est pas parce que je ne blogue pas que je n'existe plus sur le net
  2. pour vous faire partager tout ça et pourquoi pas pour que vous donniez vous aussi vos coups de coeur et vos sites où vous aimez errez

NB : Toutes ces images appartiennent à leur propriétaire. Un lien sur chaque image pointe sur sa page FlickR.

On sait pas ce que c'est, mais c'est totalement atypique, on se demande si c'est vrai ou mis en scène. Mais j'adore.

Deug, un artiste qui exprime ses sentiments par de belles vectos :

Un iguane ou quelque chose du genre :

Une jeune fille dans les pissenlits :

Une photo du plus belle effet :

Une aurore boréale (par Tristan Nitot) :

Et puis pour le 1er mai, un brin de muguet (Lily of the valley en anglais) :

A travers ces images, on découvre des photographes, des graphistes ou des simples gens, anonymes qui envoient leurs photos pour les partager ou les stocker...

PS : et si ce billet fait ressortir vos âmes d'artistes, vous pouvez toujours envoyez vos header sur ce blog !

SlideShow FlickR, suite

Tellement énervé de mettre cet iframe sur mon blog que j'ai regardé du côté de l'API PHP que FlickR.

Et tellement les exemples sont simples et clair que je n'ai pu m'en empécher...

Donc, pour commencer, je code PHP :

$set = $_GET['set'];

$params = array(
'api_key' => 'YOUR_FLICKR_API_KEY',
'method' => 'flickr.photosets.getPhotos',
'photoset_id' => $set,
'format' => 'php_serial',
);

$encoded_params = array();

foreach ($params as $k => $v){
$encoded_params[] = urlencode($k).'='.urlencode($v);
}

function urlImg($farm, $server, $id, $secret) {
return 'http://farm'.$farm.'.static.flickr.com/'.$server.'/'.$id.'_'.$secret.'.jpg';
}

$url = "http://api.flickr.com/services/rest/?".implode('&', $encoded_params);
$rsp = file_get_contents($url);
$rsp_obj = unserialize($rsp);

if ($rsp_obj['stat'] == 'ok') {
$ret = "countArticle = 0;
var mySlideData = new Array();";
foreach($rsp_obj['photoset']['photo'] as $photo) {
$url = urlImg($photo['farm'], $photo['server'], $photo['id'], $photo['secret']);
$ret.= "mySlideData[countArticle++] = new Array('$url', '#', '".$photo['title']."', '');\n";
}
$ret.= "function startSlideshow() {
var slideshow = new timedSlideShow($('mySlideshow'), mySlideData);
}
addLoadEvent(startSlideshow);";
echo $ret;
} else {
echo "Call failed!";
}
?>

(Oups, pas de commentaires...)

Et ensuite, il suffit de l'appeler comme un fichier source JavaScript, en donnant en paramètre le set_id que l'onveut afficher et l'id de la div dans laquelle on veut afficher le SlideShow. Enfin, il faut que tous les éléments nécessaires au Smooth SlideShow soient présents, et c'est tout bon...

Le résultat :

 

SlideShow Flickr

J'ai voulu tester FlickR.

Pour ce qui est du chargement, du tri des images, des tags etc... aucun soucis.

Masi ensuite, je me suis dit : tiens ça serait bien de pouvoir faire un slideShow comme je vous avais fait pour les photos de Lyon. Alors j'ai cherché sur le site. J'ai vite trouvé tous les services et la description des webServices (très claire) qui permettaient de récupérer les photos d'un utilisateur, d'un tag donné, d'un 'set' etc...

Alors j'ai commencé à chercher si ce que je voulais faire n'existait pas déjà. Je n'ai trouvé que FlickrShow qui marche sans problème, mais qui ne me convient pas car propose seulement un défilement manuel des images.

Alors je me suis dit : "Bon, ben on va mettre la main à la patte et on va faire un petit truc sympa qui utilisera le Smooth SlideShow de l'autre fois en récupérant les images via le webService, et tout ça, avec un joli JavaScript en Ajax."

J'ai vite trouvé l'ensemble des éléments dont j'avais besoin au niveau des webServices de FlickR, il ne me restait plus qu'à coder. J'ai donc commencer à faire une jolie classe qui allait appelerr avec un XMLHttpRequest le webService de FlickR et me rappatrié l'ensemble des images que j'aurai sélectionné (par tag par exemple).

Mais, j'ai appris quelque chose : en JavaScript, un XMLHttpRequest ne peut appeler des pages que sur le domaine sur lequel il est utilisé, pour des raisons de sécurité. Par exemple, depuis nyrodev.info je ne peux appeler que des fichiers qui sont sur nyrodev.info. Mes espoirs de réaliser mon SlideShow en JavaScript ce sont effondré.

Du coup, j'ai tout fermé et je me suis remis à mon projet Java, bien moins intéressant, mais qui doit être terminé pour mardi...

Quelques heures plus tard, me revoilà surmon blog pour écrire ce billet, et je me dis que c'est quand même dommage que vous ne puissiez pas voir les belles photos que j'avais mis pour tester. Alors j'ai cherché une solution de remplacement, beaucoup moins élégante, mais qui marche sans aucun problème : intégrer directement le swf de FlickR sur mon blog. La seule solution qui marche est de passer par une iframe qui appelle une page de FlickR. L'intégration directe du swf ne fonctionne pas, ils ont sans doute mis une vérification...

Et donc, vous l'attendez tous, le voici :

Et puis, pour en revenir à nos histoires, c'est possible que quand j'aurai un peu de temps, je ferai un script PHP qui générera du code JavaScript pour faire ce que je vous disai tout à l'heure.