Ejemplo de uso de la API de Flickr con PHP
Este ejemplo usa phpFlickr, clase escrita en php donde descansan varios métodos para el tratamiento del resultado de las peticiones al web service de Flickr.
Flickr ofrece una cuenta gratuita con algunas limitaciones, una de ellas según veo es que no permite tener colecctions de sets, asi que por lo pronto este ejemplo se enfoca a sets y photos de nuestro photostream
- Descargar el ejemplo phpflickr-3.0.zip
- Obtener una key para el API
- IDentificar tu ID de Flickr
phpFlickr, consta de 3 archivos: phpFlickr.php
, getToken.php
, auth.php
, aunque en el ejemplo se incluyen 4 archivos adicionales: sets.php
, photos-set.php
, photo.php
,noimg.jpg
Obtener listado de sets
//sets.php require_once("phpFlickr.php"); $f = new phpFlickr("tu key"); // 5456afd54654a65a656465as45654 $f->enableCache("fs", "cache"); $nsid = "tu ID"; // 234234234@N20 $sets = $f->photosets_getList($user_id=$nsid); for($i=0;$i<=sizeof($sets);$i++) { echo "<a title=\"".utf8_decode($sets["photoset"][$i]["title"])."\" href=\"photos-set.php?set=".$sets["photoset"][$i]["id"]."\">".utf8_decode($sets["photoset"][$i]["title"])."</a> (".$sets["photoset"][$i]["photos"].")<br>"; }
Desplegar thumb de las photos de un set
//photo-set.php require_once("phpFlickr.php"); $f = new phpFlickr("tu key"); // 5456afd54654a65a656465as45654 $f->enableCache("fs", "cache"); $nsid = "tu ID"; // 234234234@N20 $info_set = $f->photosets_getInfo($photoset_id=$_GET["set"]); echo " <<h2>".utf8_decode($info_set["title"])."</h2>"; echo "<p><a title=\"Regresar a Galerias\" href=\"sets.php\">« Regresar a galerias</a></p>"; $photos_of_sets = $f->photosets_getPhotos($photoset_id=$_GET["set"],$per_page=20); foreach($photos_of_sets["photoset"]["photo"] as $photo) { echo "<a href=\"photo.php?id=$photo[id]&set=".$_GET["set"]."\" title=\"View ".utf8_decode($photo["title"])."\">"; echo "<img src=\"" . $f->buildPhotoURL($photo, "Square") . "\" width=\"75\" height=\"75\" alt=\"".utf8_decode($photo["title"])."\" />"; echo "</a>"; }
Desplegar el detalle de cada photo
Detalle significa la foto de un tamaño con mayor resolucióon, título, descripción, la que sigue y la anterior
//photo.php $id = isset($_GET['id']) ? $_GET['id'] : NULL; require_once('phpFlickr.php'); $f = new phpFlickr("tu key"); // 5456afd54654a65a656465as45654 $f->enableCache("fs", "cache"); $photo = $f->photos_getInfo("$id", $secret = NULL); $photosize = $f->photos_getSizes("$id", $secret = NULL); $size = $photosize[3]; $context = $f->photos_getContext("$id"); $photoUrl = $f->buildPhotoURL($photo, "Medium"); echo "<h2>".utf8_decode($photo["title"])."</h2>"; echo "<img src=\"$photoUrl\" width=\"$size[width]\" height=\"$size[height]\" alt=\"".utf8_decode($photo["title"])."\" />"; echo "<p>".utf8_decode($photo["description"])."</p>"; ?> <div id="context"> <?php if($context['prevphoto']['id']) { echo"<a href=\"?id=".$context['prevphoto']['id']."&set=".$_GET["set"]."\" title=\"Anterior: ".utf8_decode($context['prevphoto']['title'])."\"><img src=\"".$context['prevphoto']['thumb']."\" width=\"75\" height=\"75\" /></a>"; } else { echo"<img src=\"noimg.jpg\" width=\"75\" height=\"75\" alt=\"No photo\" />"; } if($context['nextphoto']['id']) { echo "<a href=\"?id=".$context['nextphoto']['id']."&set=".$_GET["set"]."\" title=\"Siguiente: ".utf8_decode($context['nextphoto']['title'])."\"><img src=\"".$context['nextphoto']['thumb']."\" width=\"75\" height=\"75\" /></a>"; } else { echo"<img src=\"noimg.jpg\" width=\"75\" height=\"75\" alt=\"No photo\" />"; }; echo"</div>"; echo"<p>"; if($context['prevphoto']['id']) { echo"<a href=\"?id=".$context['prevphoto']['id']."&set=".$_GET["set"]."\" title=\"Anterior: ".utf8_decode($context['prevphoto']['title'])."\">« Anterior</a>"; } else { echo"« Anterior"; } echo" | "; if($context['nextphoto']['id']) { echo "<a href=\"?id=".$context['nextphoto']['id']."&set=".$_GET["set"]."\" title=\"Siguiente: ".utf8_decode($context['nextphoto']['title'])."\">Siguiente »</a>"; } else { echo"Next »"; } echo"</p>"; ?> </div><!-- end context --> <p>« <a href="photos-set.php?set=<?php echo $_GET["set"]?>">Regresa a Galeria</a></p>
Mi Cuenta en Flickr:http://www.flickr.com/photos/dr-bizarre
Demo: http://www.drbizarre.net/tester/phpflickr-3.0/sets.php