Sobre Mi

delicious facebook linkedin twitter youtube flickr justintv youtube About Me
Creative Commons License
This work is licensed under a Creative Commons Attribution 2.5 Mexico License.
120x60-1

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

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

blog comments powered by Disqus