Obtener comentarios de Facebook-Me gusta?

Tengo una aplicación de Facebook que tiene su propio sistema de postría, pero aún me gustaría mostrar los comentarios que los usuarios hicieron en Facebook a partir de los resources compartidos de los usuarios o me gusta.

Digamos que una URL (por ejemplo, http://myapp.com/?miId=100005235 ) se comparte en Facebook y las personas agregan comentarios a la acción. Tales comentarios (y el nombre de usuario) son lo que me gustaría recuperar.

¿Puedo hacerlo con facebook-js-sdk?

Sí tu puedes. La forma más fácil es hacer una llamada FQL a Facebook. También debería poder hacer esto con una llamada Graph API, pero en mis testings no pude encontrar la manera de devolver los datos que deseaba.

En FQL, necesitará consultar tres tablas diferentes: link_stat para get la identificación de Facebook para su URL, comments para get la información de comentarios y el user para get el nombre de los usuarios registrados que han dejado un comentario.

El multiquery sigue, ampliado para la legibilidad.

 { "my_link": "SELECT comments_fbid, comment_count, normalized_url FROM link_stat WHERE url ='http://funcook.com/receta.php?id=53' ", "comment": "SELECT object_id, fromid, time, text, username FROM comment WHERE object_id IN (SELECT comments_fbid FROM #my_link)", "com_users": "SELECT name, uid FROM user WHERE uid IN (SELECT fromid FROM #comment)" } 

Obtendrás un object JSON de vuelta. Con algunas URL de testing en mis sitios, descubrí que my_link.comment_count no siempre es igual a count(comment) . He encontrado casos en que uno de ellos muestra cero y el otro no.

Aquí está en una secuencia de commands:

 <script> FB.api( '/fql', {q:{"my_link":"SELECT comments_fbid, comment_count, normalized_url FROM link_stat WHERE url='http://funcook.com/receta.php?id=53'", "comment":"SELECT object_id, fromid, time, text, username FROM comment WHERE object_id IN (SELECT comments_fbid FROM #my_link)", "com_users": "SELECT name, uid FROM user WHERE uid IN (SELECT fromid FROM #comment)" }}, function(response){ console.log(response) }); </script> 

Aquí está la reference Graph API para comentarios y publicaciones . Este último dice que cada publicación tiene un object de comments .

Realmente nunca utilicé Graph API antes, y no soy bueno para escribir código en mi cabeza, así que no puedo darte el código real, pero tal vez algo como esto:

 FB.api( '/19292868552_10150189643478553', // fetch a post by its id function(response) { // callback function for (var comment in response["comments"]["data"]) { // process comment } } ); 

Aunque podría tener más sentido recibir los comentarios del lado del server, dependiendo de lo que tenga más sentido en su caso de uso.