JMiur [E]

La librería jQuery posee una serie de funciones simples que facilitan la forma en que podemos acceder a los datos de un feed en forma Json. La función getJSON es uno de esos métodos simplificados donde, en principio, bastaría colocar la dirección URL a leer.
$.getJSON('URL_A_LEER', function(variable) {
  // aca hacemos algo con los datos 
});
Usando esa función, podríamos leer cierta información que nos da Facebook, por ejemplo, algunos datos relativos a una página web o a las entradas de Blogger tales como la cantidad de Me Gusta que tiene, las veces que fue compartida, etc.

Esos datos son accesibles en esta dirección:

http://api.ak.facebook.com/restserver.php?v=1.0&method=links.getStats&urls=URL_PAGINA&format=json

así que podemos crear un script que la lea y luego, interpretar lso datos para mostrarlos en un DIV cualquiera que agregamos ahí donde quisiéramos verlo:
<div id="FBejemplo"></div>
y lluego, debajo de eso, podríamos poner el script para leer los datos de la página donde nos encontremos:
<script>
  var jsonUrl = "http://api.ak.facebook.com/restserver.php?v=1.0&method=links.getStats&urls="+location.href+"&format=json&callback=?";
  $.getJSON(jsonUrl, function(data) {
    // armamos la salida de esos datos
    var salida = "Me Gusta: " + data[0].like_count); // la cantidad de Me Gusta de esa página
    salida+ = "Comentarios: " + data[0].comment_count); // la cantidad de comentarios de Facebook
    salida+ = "Compartido: " + data[0].share_count); // la cantidad de veces que fue compartida
    // y la escribimos
    $("#FBejemplo").html(salida);
  });     
</script>
Hay otros datos accesibles tales como data[0].click_count, data[0].commentsbox_count y un dato general que suma todas las interacciones: data[0].total_count

No hace falta que los datos sean de la página que estamos viendo, podrían ser de cualquier otra, por ejemplo, acá se muestra lo que devuelve Facebook cuando coloco la URL del home:

15 comentarios:

Fran Correas  

Falta que lo elabores un poco más con su script para poner antes de head y su div para cada entrada.... Te lo agradeceremos mucho. Gracias por todos los trucos.

JMiur  

No hay necesidad de cargarlo en el head y tal como está el ejemplo, leerá la URL de cada página así que funcioanará en cada entrada mostrando los datos de ella.

Responder
Rosendo Ramírez  

Los que estoy deseando es que salga algo que pueda leer los resumenes de las entradas :( para compartir en facebook

JMiur  

La mejor forma, hasta ahora es la que se muestra en esta entrada.

Rosendo Ramírez  

Pero eso seria algo como para poner un boton y compartir las publicaciones no?... pero me refiero a compartir nuestras entradas con url's y que al colocarlas nos muestre el resumen de las entradas... :S

JMiur  

Para eso, sólo puedes recurrir a las etiquetas META description y og:description que habian mejorado desde que podía utilizarse la personalizaciòn apra buscadores en la nueva interfaz pero que ahora, parece estar deshabilitada:

data:blog.postImageThumbnailUrl
data:blog.metaDescription

Responder
Anónimo  

hola jmiur... muy buena entrada, dime y como se haria para leer los datos del plugin comments box, como para hacer ultimos comentarios?

Anónimo  

como puedo leer estos datos?

https://graph.facebook.com/fql?q=select+post_fbid%2C+fromid%2C+object_id%2C+text%2C+time+from+comment+where+object_id+in+%28select+comments_fbid+from+link_stat+where+url+%3D%27http%3A%2F%2Fsafer321.blogspot.com%2F2010%2F02%2Fpinta-en-san-justo.html%27%29

JMiur  

De manera similar:

var jsonUrl = "LA_URL&callback=?";
$.getJSON(jsonUrl, function(data) {
$.each(data.data, function(i,e) {
// los datos estarán en
// e.post_fbid
// e.fromid
// e.object_id
// e.text
// e.time
});
});

Puedes ver más detalles en la documentación de jQuery

Responder
Anónimo  

lo probe pero no me funca.

JMiur  

No sé que has probado. Si no muestras tu ejemplo, es imposible decir nada.

Anónimo  

crees poder crear un post sobre esto? es algo que muchos bloggers andan buscando :D!

JMiur  

Como dije, muéstrame el ejemplo que hayas hecho.

Responder
Unknown  

Hola JMiur, justo andaba buscando como obtener la cantidad de veces (solo el numero) que se había compartido algo por facebook.

Hice algunas pruebas y salio excelente en un gadget HTML del diseño de blogger en la sidebar pero quisiera saber la forma de hacer lo mismo para cada post y que se muestre las veces que se ha compartido (solo el número) cada entrada.

Ah y donde y como pondría el código para que aparezca debajo del titulo de cada post.

Buen día.

JMiur  

Del mismo modo, colocando la url del post. location.href es ese dato, la página donde se está así que bastaría buscar cuál es el código que genera el titulo y ponerlo allí, condicionándolo para que se muestre en las pagina de tipo post.

Si se quiere usar en el home debería usarse el dato del loop de Blogger:

data:post.url

Responder

¿Quiere dejar un comentario?

recuerde que los comentarios están siendo moderados y serán publicados a la brevedad ...

Nota: sólo los miembros de este blog pueden publicar comentarios.

Si le gusta ir a lo seguro utilice este botón para abrir los comentarios en una ventana modal en esta misma pagina.

Si añora tiempos idos, use este enlace para agregar un comentario al viejo estilo ...

 
CERRAR