http://graph.facebook.com/nombre_usuario/feed
Voy a agregar una función antes de </head>:
<script type="text/javascript">
//<![CDATA[
function leerallfacebook(json) {
// aquí voy a iniciar algunas variables
var data, fecha, tipo, link, message, source, link, picture, likes, from;
var salida = "";
var contarsalidas = 0;
// como en todos los otros ejemplos, se ejecuta un bucle que lee una cierta cantidad de entradas
for (var i = 0; i < json.data.length; i++) {
var post = "";
// guardo los datos de cada entrada en un array llamado data
data = json.data[i];
// si no hay nada, termino porque significa que hay menos de las que solicité leer
if (i==json.data.length) { break; }
fecha = data.created_time; // esta es la fecha de publicación
icon = data.icon; // este es el ícono que depende del tipo de publicación
tipo = data.type; // este dato nos indica qué tipo de publicación es
// esto nos dice la cantidad de "Me Gusta" que tiene
likes = 0;
if(data.likes) {likes = data.likes.count;}
// este dato, indica quién lo publicó
from = data.from.name;
// como sólo quiero ver las mias, si no lo son, las ignoraré
if(from!="mi_nombre") {tipo="dummy";}
// y ahora, según el tipo de publicación, leo los datos
switch(tipo) {
case "photo": // es del tipo Foto
picture = data.picture; // esto contiene la dirección URL de la miniatura
link = data.link; // esto contiene la dirección URL a la imagen
message = data.message; // esto contiene el texto que le hayamos agregado
// voy armando mi código HTML para mostrarla
post += "<a target='_blank' href='" + link + "'><img src='" + picture + "'/></a>";
break;
case "video": // es del tipo Video
picture = data.picture; // esto contiene la dirección URL de la miniatura
link = data.link; // esto contiene la dirección URL del video
// por ejemplo: http://www.youtube.com/watch?v=XXXXXXXXXXX
source = data.source; // esto contiene la dirección URL que usamos para insertarlo en una web
// por ejemplo: http://www.youtube.com/v/XXXXXXXXXXX&autoplay=1
// voy a usar una ventana modal para mostrar esos videos pero puede usarse cualquier otro método
// dependiendo del servicio, uso diferentes tamaños
if(source.indexOf("www.youtube.com")>0) {
post += "<a class='lightwindow' params='lightwindow_width=640,lightwindow_height=390,lightwindow_loading_animation=true' title='' rel='' href='" + source + "'><img src='" + picture + "'/></a>";
} else if(source.indexOf("vimeo.com")>0) {
post += "<a class='lightwindow' params='lightwindow_width=560,lightwindow_height=312,lightwindow_loading_animation=true' title='' rel='' href='" + source + "'><img src='" + picture + "'/></a>";
} else {
// cualquier otro es mostrado como un enlace
post += "<a href='" + link + "'><img src='" + picture + "'/></a>";
}
break
case "link": // es del tipo Enlace
picture = data.picture; // esto contiene la dirección URL de la miniatura
link = data.link; // esto contiene la dirección URL del enlace
// voy armando mi código HTML para mostrarlo
post += "<a target='_blank' href='" + link + "'><img src='" + picture + "'/></a>";
break
default: // cualquier otro no lo voy a mostrar en este ejemplo
// hay varios; puede ser "swf", "music", "status", etc
break
}
// ahora, verifico que la publicación sea una del tipo que quiero mostrar
if(post!="") {
// si es así, coloco los datos en un código HTML
salida += "<div class='fbpost'>";
salida += post;
salida += "<img class='icon' src='" + icon + "' />";
salida += "<span class='like'>" + likes + "</span>";
salida += "</div>";
// y voy contando hasta completar la cantidad que quiero mostrar
contarsalidas ++;
if(contarsalidas==24) { break; }
}
}
// terminado el bucle, escribiré los datos en un DIV al que le pondre un ID especifico
document.getElementById("resultados").innerHTML = salida;
}
//]]>
</script><div id='resultados'> C A R G A N D O </div> <script src="http://graph.facebook.com/mi_nombre/feed?limit=20&callback=leerallfacebook"></script>
Si usamos CSS, podemos crear cualquier tipo de página:
<style>
.fbpost {
background-color: #444;
border: 1px solid #666;
display: block;
float:left;
height: 160px;
margin: 2px;
padding: 10px;
position: relative;
text-align: center;
vertical-align: middle;
width: 160px;
}
.like {
background: transparent url(URL_imagenlike) no-repeat left 50%;
bottom: 10px;
color: #9FAECC;
display: block;
font-size: 18px;
margin: 0 auto;
position: absolute;
right: 0;
width: 50px;
}
.icon {
bottom: 10px;
display: block;
position: absolute;
left: 10px;
}
</style>




3 comentarios:
¡¡Ahh bueno, esto es GENIAL!! :D
Permitame felicitarlo por tan grandiosa integración, los datos accesibles a través del Graph API me parecen suficientes para hacer cosas ingeniosas, y para la muestra un boton.
¡Excelente Jorge!
¿Usted está tan enviciado con JSON como yo? :-)
Un poquititico no más. :D
No es que el formulario tenga problemas sino que los comentarios están cerrados.