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!!
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.
No es que el formulario tenga problemas sino que los comentarios están cerrados.