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.