Obtener el conteo de Me gusta / Compartir de Facebook para una URL dada

Estoy usando la API de Facebook para obtener el conteo de me gusta / compartir para las URL determinadas. Lo extraño es que parece ser bastante inconsistente en la devolución de resultados. Por ejemplo, esta página arroja resultados:

 https://api.facebook.com/method/fql.query?query=select%20total_count,like_count,comment_count,share_count,click_count%20from%20link_stat%20where%20url='http://www.groupon.com/deals / seattlehelitourscom-por-classic-helicopter-corp '& format = json

Mientras que, este no:

 https://api.facebook.com/method/fql.query?query=select%20total_count,like_count,comment_count,share_count,click_count%20from%20link_stat%20where%20url='http://www.livingsocial.com/deals / 278194-sunset-kayaking-hot-chowder '& format = json

La segunda página claramente tiene un conteo compartido, y cuando inspecciono el HTML de la página, la URL que se está usando para compartir es la que he colocado en la solicitud de la API anterior. Sin embargo, la API no responde con ninguna información de recuento para ninguna cantidad de Me gusta o acciones.

¿Alguna pista sobre por qué la API podría estar respondiendo por algunas URL pero no por otras?

ACTUALIZACIÓN: esta solución ya no es válida. Los FQL están en desuso desde el 7 de agosto de 2016.


https://api.facebook.com/method/fql.query?query=select%20%20like_count%20from%20link_stat%20where%20url=%22http://www.techlila.com%22

Además, http://api.facebook.com/restserver.php?method=links.getStats&urls=http://www.techlila.com le mostrará todos los datos, como ‘Recuento de acciones’, ‘Me gusta’ y ‘Recuento de comentarios’. ‘y total de todos estos.

Cambie la URL (es decir, http://www.techlila.com ) según su necesidad.

Esta es la URL correcta, obtengo los resultados correctos.

EDITAR (mayo de 2017): a partir de la v2.9 puede hacer una llamada a la API de gráfico donde ID es la URL y seleccionar el campo de “interacción”, a continuación se muestra un enlace con el ejemplo del explorador de gráficos.

https://developers.facebook.com/tools/explorer/?method=GET&path=%3Fid%3Dhttp%3A%2F%2Fcomunidade.edp.pt%26fields%3Dengagement&version=v2.9

A partir del 8 de agosto de 2016, los FQL están en desuso.


Actualización 10/2017 (v2.10):

Aquí hay una forma no obsoleta de obtener una URL determinada similar y compartir conteo (no se requiere token de acceso):

https://graph.facebook.com/?fields=og_object{likes.summary(total_count).limit(0)},share&id=https://www.stackoverflow.com


Resultado:

{ "og_object": { "likes": { "data": [ ], "summary": { "total_count": 83 } }, "id": "10151023731873397" }, "share": { "comment_count": 0, "share_count": 2915 }, "id": "https://www.stackoverflow.com" } 

Ejemplo de JQuery:

 $.get('https://graph.facebook.com/' + '?fields=og_object{likes.summary(total_count).limit(0)},share&id=' + url-goes-here, function (data) { if (data) { var like_count = data.og_object.likes.summary.total_count; var share_count = data.share.share_count; } }); 

Referencia:

https://developers.facebook.com/docs/graph-api/reference/url

Use la API de gráfico abierto. Aquí hay un ejemplo en vivo que pregunta cuántos gustos tiene “Coca Cola”.

https://developers.facebook.com/tools/explorer/?method=GET&path=cocacola%3Ffields%3Dlikes

Lo que se reduce a:

https://graph.facebook.com/cocacola?fields=likes

Que podrías hacer en un AJAX GET

El resultado es:

 { "likes": 71717854, "id": "40796308305" } 

Todas las respuestas anteriores han sido depreciadas desde entonces. Este método funciona a partir de agosto de 2016:


Para obtener el recuento similar de cualquier URL:

Solicitud GET: https://graph.facebook.com/%5Burl%5D/access_token=%5Baccess_token%5D

A continuación, tome las acciones-> share_count del objeto JSON devuelto.


Cuenta de fans para una página de Facebook:

Solicitud GET: https://graph.facebook.com/%5Burl%5D/?fields=fan_count&access_token=%5Baccess_token%5D

A continuación, tome el campo ‘fan_count’ del objeto JSON devuelto.


Puede probar esto y obtener su token de acceso usando Graph API Explorer

Facebook Graph es increíble. Solo haz algo como a continuación. He enterado la URL de Perl.org, puedes poner cualquier URL allí.

https://graph.facebook.com/fql?q=SELECT%20like_count,%20total_count,%20share_count,%20click_count,%20comment_count%20FROM%20link_stat%20WHERE%20url%20=%20%27http://perl.org % 27

Para la última API de 2.1 Gráficos, un ejemplo para obtener “me gusta” para imdb.com será

Usando esto para obtener el id https://developers.facebook.com/tools/explorer/?method=GET&path=%3Fid%3Dhttp%253A%252F%252Fwww.imdb.com%3Ffields%3Dlikes&version=v2.1

y luego obtener los Me gusta

https://developers.facebook.com/tools/explorer/?method=GET&path=414652589771%2Flikes&version=v2.1

Documento

 URL /?id={url} Represents an external URL as it relates to the Facebook social graph - shares and comments from the URL on Facebook, and any Open Graph objects associated with the URL. 

Referencia http://harshtechtalk.com/how-get-likes-count-posts-comments-facebook-graph-api/

Puede mostrar Facebook Share / Like Count Like This: (Probado y verificado)

 $url = http://www.yourdomainname.com // You can use inner pages $rest_url = "http://api.facebook.com/restserver.php?format=json&method=links.getStats&urls=".urlencode($url); $json = json_decode(file_get_contents($rest_url),true); echo Facebook Shares = '.$json[0][share_count]; echo Facebook Likes = '.$json[0][like_count]; echo Facebook Comments = '.$json[0][comment_count]; 

Para la API gráfica v2.1, puede obtener el conteo similar utilizando solo 1 llamada y, por lo tanto, no es necesario pasar por la búsqueda.

Por ejemplo, para obtener la cantidad de Me gusta de http://www.imdb.com

https://graph.facebook.com/414652589771/likes?summary=1

Graph API Explorer https://developers.facebook.com/tools/explorer/?method=GET&path=414652589771%2Flikes%3Fsummary%3D1&version=v2.1

De alguna manera no está documentado (al menos en el momento en que presento esta respuesta …). Encontré la respuesta en https://stackoverflow.com/a/18198957/1822624

usa la URL a continuación y reemplaza myurl con tu url de publicación y obtendrás todas las cosas

http://api.facebook.com/restserver.php?method=links.getStats&urls=myurl

pero ten en cuenta que solo te dará respuesta en formato XML

Ejemplo:

 1 8 0 9 0 ************** 0 

Veo este bonito tutorial sobre cómo obtener el conteo similar de Facebook usando PHP.

 public static function get_the_fb_like( $url = '' ){ $pageURL = 'http://nextopics.com'; $url = ($url == '' ) ? $pageURL : $url; // setting a value in $url variable $params = 'select comment_count, share_count, like_count from link_stat where url = "'.$url.'"'; $component = urlencode( $params ); $url = 'http://graph.facebook.com/fql?q='.$component; $fbLIkeAndSahre = json_decode( $this->file_get_content_curl( $url ) ); $getFbStatus = $fbLIkeAndSahre->data['0']; return $getFbStatus->like_count; } 

Aquí hay un código de muestra. No sé cómo pegar el código con el formato correcto aquí, así que visite este enlace para ver mejor el código.

Creando un contador personalizado como Facebook

Necesita el permiso extendido “read_stream”, luego debe llamar al punto final de la API de Facebook y agregar me likes,shares a sus fields .

Esta llamada

 https://developers.facebook.com/tools/explorer?method=GET&path=me/feed?fields=likes,shares 

devolverá una matriz de datos como esta

 { "data": [ { "likes": { "data": [ { "name": "name of user who liked status ", "id": "id of user who liked status " } ], "count": number of likes }, "shares": { "count": number of shares }, "id": "post id", "created_time": "post creation time" } ] } 

Su pregunta es bastante antigua y Facebook ha depreciado FQL ahora, pero lo que desea aún se puede hacer con esta utilidad: Facebook Analytics . Sin embargo, encontrará que si desea detalles sobre a quién le gusta o comenta, le llevará mucho tiempo obtenerlo. Esto se debe a que Facebook solo proporciona una pequeña porción de datos a la vez y se requiere mucha paginación para obtener todo.

No creo que el Objeto Open Graph de Facebook, es decir, “og_object” proporcione algo más que comment_count y share_count para una URL. Prueba esto; reemplace $ YOUR_URL con la URL y $ ACCESS_TOKEN con su token de acceso en el siguiente enlace https://graph.facebook.com/v2.5/ $ YOUR_URL? access_token = $ ACCESS_TOKEN

Por ejemplo:

https://graph.facebook.com/v2.5/http://espn.go.com/nfl/story/_/id/14424066/handing-holiday-gifts-all-32-nfl-teams-nfl? access_token = $ ACCESS_TOKEN

 { og_object: { id: "956517601094822", description: "Naughty or nice, every NFL team deserves something for Christmas. So in lieu of Santa Claus, Bill Barnwell is here to distribute some gifts.", title: "Barnwell: Handing out holiday gifts to all 32 teams", type: "article", updated_time: "2015-12-23T17:20:55+0000", url: "http://espn.go.com/nfl/story/_/id/14424066" }, share: { comment_count: 0, share_count: 354 }, id: "http://espn.go.com/nfl/story/_/id/14424066/handing-holiday-gifts-all-32-nfl-teams-nfl" } 

Además, si intenta obtener me gusta, obtendrá el siguiente error https://graph.facebook.com/http://rottentomatoes.com?fields=likes&summary=1&access_token= $ ACCESS_TOKEN

 { error: { message: "(#100) Tried accessing nonexisting field (likes) on node type (URL)", type: "OAuthException", code: 100, fbtrace_id: "H+KksDn+mCf" } }