Cómo obtener conteos compartidos usando API gráfica

136

Puedo obtener el recuento de recursos compartidos de una URL usando PHP SDK y usando la API de descanso en desuso, pero no encontré una manera de obtener los recuentos de recursos compartidos de una URL usando la API de gráficos.

Existe alguna manera de averiguarlo?

Ashish Pethkar
fuente
Obtenga la solución para usted aquí stackoverflow.com/questions/6137414/…
Sakata Gintoki
Verifique la respuesta aquí: stackoverflow.com/questions/9728279/…
Atif Tariq
Respuesta posterior al 8 de agosto de 2016 (no obsoleto): stackoverflow.com/a/39379251/4607317
budi

Respuestas:

270

Aquí hay una lista de enlaces de API para obtener sus estadísticas:

Facebook: https://api.facebook.com/method/links.getStats?urls=%%URL%%&format=json
Reddit: http://buttons.reddit.com/button_info.json?url=%%URL% %
LinkedIn: http://www.linkedin.com/countserv/count/share?url=%%URL%%&format=json
Digg: http://widgets.digg.com/buttons/count?url=%%URL %%
Delicious: http://feeds.delicious.com/v2/json/urlinfo/data?url=%%URL%%
StumbleUpon: http://www.stumbleupon.com/services/1.01/badge.getinfo?url = %% URL %%
Pinterest: http://widgets.pinterest.com/v1/urls/count.json?source=6&url=%%URL%%

Editar: se eliminó el punto final de Twitter, ya que ese ha quedado en desuso.

Editar: Facebook REST API está en desuso

chandrajeet
fuente
1
El linkedin no funciona (da acceso denegado a 403)
Maxim Krizhanovsky
2
¿Cuánto es el límite de llamadas API para cada solicitud?
StErMi
8
Hola ! Gracias por esta lista No puedo encontrar la documentación para el punto final API api.facebook.com/method/links.getStats . De hecho, funciona, pero me gustaría asegurarme de que no forme parte de una versión de API que se dará de baja pronto. También es extraño que esté disponible sin autenticación ... ¿Ves algo al respecto en la documentación de Facebook? No es parte de la API gráfica ...
Żabojad
10
El enlace de Facebook ya no funciona. Use graph.facebook.com/?id=http://www.google.com
MarkOverride
8
@MarkOverride, una versión aún más optimizada (menos ancho de banda) es graph.facebook.com/?fields=share&id=http://www.google.com . El problema es que estos nuevos puntos finales están severamente limitados por la velocidad y es muy difícil usarlos en la producción sin encontrar dichos límites. Si alguien tiene una forma diferente de hacerlo, háganoslo saber.
njy
200

ACTUALIZACIÓN - Abril '15:

Si desea obtener el recuento que está disponible en el botón Me gusta, debe usar el engagementcampo en el og_objectobjeto, así:

https://graph.facebook.com/v2.2/?id=http://www.MY-LINK.com&fields=og_object{engagement}&access_token=<access_token>

Resultado:

{
  "og_object": {
    "engagement": {
      "count": 93, 
      "social_sentence": "93 people like this."
    }, 
    "id": "801998203216179"
  }, 
  "id": "http://techcrunch.com/2015/04/06/they-should-have-announced-at-420/"
}

Es posible con Graph API, simplemente use:

http://graph.facebook.com/?id=YOUR_URL

algo como:

http://graph.facebook.com/?id=http://www.google.com

Volvería:

{
   "id": "http://www.google.com",
   "shares": 1163912
}

ACTUALIZACIÓN: mientras que lo anterior respondería cómo obtener el recuento de acciones . Este número no es igual al que ve en el botón Me gusta , ya que ese número es la suma de:

  • El número de me gusta de esta URL
  • El número de recursos compartidos de esta URL (esto incluye copiar / pegar un enlace a Facebook)
  • El número de me gusta y comentarios en historias en Facebook sobre esta URL
  • El número de mensajes de la bandeja de entrada que contiene esta URL como archivo adjunto.

Por lo tanto, es posible obtener el número del botón Me gusta con Graph API a través del fqlpunto final (la link_stattabla):

https://graph.facebook.com/fql?q=SELECT url, normalized_url, share_count, like_count, comment_count, total_count,commentsbox_count, comments_fbid, click_count FROM link_stat WHERE url='http://www.google.com'

total_count es el número que se muestra en el botón Me gusta.

ifaour
fuente
No obtengo el recuento de acciones para ciertos objetos. Sé que deberían tener al menos una acción.
Jan Deinhard
1
@Fair, sí, a veces el número no es correcto y es un poco confuso. Puede usar la tabla fql sugerida por la otra respuesta, pero aún así ... ¡a veces los números no son correctos también!
ifaour
¿Es posible tomar acciones de pocos sitios?
Aziz
@ Aziz, ¿qué quieres decir?
ifaour
3
Como v2.6 doc no te permite obtener share_count, like_county comment_countparece que fqlla API REST sigue siendo la mejor opción ... ¡ Pero ambas fqly la API REST ya no estarán disponibles después del 7 de agosto de 2016! ¿Alguna sugerencia?
Daniel García Baena
21

No debe usar la API gráfica. Si llama a:

o

ambos volverán:

{
  "id": "http://www.apple.com",
  "shares": 1146997
}

Pero el número que se muestra es la suma de :

  • número de me gusta de esta URL
  • cantidad de recursos compartidos de esta URL (esto incluye copiar / pegar un enlace a Facebook)
  • cantidad de me gusta y comentarios en historias en Facebook sobre esta URL
  • cantidad de mensajes de la bandeja de entrada que contienen esta URL como archivo adjunto.

Entonces debes usar FQL.
Mire esta respuesta: Cómo obtener me gusta de Facebook, compartir, contar los comentarios de un artículo

freedev
fuente
tienes toda la razón, por total_shares es la suma de comentarios + me gusta + acciones, pero la página que solicité, muestra shares_i_have = total_shares + me gusta
Aziz
14

Después del 7 de agosto de 2016, aún puede hacer su llamada de esta manera:

http://graph.facebook.com/?id=https://www.apple.com/

pero el formato de respuesta será diferente: no será

{
  "id": "http://www.apple.com",
  "shares": 1146997
}

pero en cambio será

{
   "og_object": {
      "id": "388265801869",
      "description": "Get a first look at iPhone 7, Apple Watch Series 2, and the new AirPods \u2014 the future of wireless headphones. Visit the site to learn more.",
      "title": "Apple",
      "type": "website",
      "updated_time": "2016-09-20T08:21:03+0000"
   },
   "share": {
      "comment_count": 1,
      "share_count": 1094227
   },
   "id": "https://www.apple.com"
}

Entonces tendrá que procesar la respuesta de esta manera:

reponse_variable.share.share_count
Giorgio Tempesta
fuente
1
Pero el valor share_count es engañoso, ya que se refiere a la suma de me gusta + acciones
Alon Bilu
Supongo que tienes razón, mi respuesta fue solo una actualización sobre cómo llamar a la API. Creo que lo que @freedev dijo sobre el recuento de acciones aún puede ser correcto.
Giorgio Tempesta
8

Lo que encontré útil y encontré en un enlace de arriba es esta consulta FQL donde pides Me gusta, total, compartir y hacer clic en el conteo de un enlace mirando la tabla link_stat

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

Eso generará algo como esto:

{
    data: [
        {
             like_count: 3440162,
             total_count: 13226503,
             share_count: 7732740,
             click_count: 265614,
             comment_count: 2053601
         }
    ]
}
Juanjo Lainez Reche
fuente
2
A partir del 8 de agosto de 2016, FQL ya no estará disponible y no se podrá consultar. Para migrar su aplicación, use la herramienta de actualización de API para ver las llamadas a Graph API que puede hacer en su lugar.
Nguyen Minh Binh
7

Mira esta esencia . Tiene fragmentos de cómo obtener el recuento de uso compartido para los siguientes servicios:

  • Facebook
  • Gorjeo
  • Google Mas
  • Pinterest
  • LinkedIn
  • Me topé con
Muhammad Reda
fuente
Esto tiene unos años. Con la frecuencia con que cada servicio actualiza su API, dudo que sea muy preciso.
subvertallchris
4

El botón Me gusta de Facebook hace dos cosas que la API no hace. Esto puede crear confusión al comparar los dos.

  1. Si la URL que usa en su botón Me gusta tiene un redireccionamiento, el botón realmente mostrará el recuento de la URL de redireccionamiento frente al recuento de la URL que está utilizando.

  2. Si la página tiene una propiedad og: url, el botón Me gusta mostrará los gustos de esa url en lugar de la url en el navegador.

Espero que esto ayude a alguien

Roland
fuente
1

cuando utilicé FQL encontré el problema (pero sigue siendo un problema) la documentación dice que el número que se muestra es la suma de:

  • número de me gusta de esta URL
  • cantidad de recursos compartidos de esta URL (esto incluye copiar / pegar un enlace a Facebook)
  • cantidad de me gusta y comentarios en historias en Facebook sobre esta URL
  • cantidad de mensajes de la bandeja de entrada que contienen esta URL como archivo adjunto.

pero en mi sitio web el número que se muestra es la suma de estos 4 recuentos + número de acciones (nuevamente)

Aziz
fuente
1

Usando FQL podrías hacer eso:

http://graph.facebook.com/fql?q=SELECT url, total_count FROM link_stat WHERE url='PASTE_YOUR_URL_HERE'
totas
fuente
1

Hay una gema de rubí para eso - SocialShares

Actualmente es compatible con las siguientes redes sociales:

  • Facebook
  • gorjeo
  • Google Mas
  • reddit
  • linkedin
  • pinterest
  • tropezar con
  • vkontakte
  • mail.ru
  • odnoklassniki

Uso:

:000 > url = 'http://www.apple.com/'
  => "http://www.apple.com/"
:000 > SocialShares.facebook url
  => 394927
:000 > SocialShares.google url
  => 28289
:000 > SocialShares.twitter url
  => 1164675
:000 > SocialShares.all url
  => {:vkontakte=>44, :facebook=>399027, :google=>28346, :twitter=>1836, :mail_ru=>37, :odnoklassniki=>1, :reddit=>2361, :linkedin=>nil, :pinterest=>21011, :stumbleupon=>43035}
:000 > SocialShares.selected url, %w(facebook google linkedin)
  => {:facebook=>394927, :google=>28289, :linkedin=>nil}
:000 > SocialShares.total url, %w(facebook google)
  => 423216
:000 > SocialShares.has_any? url, %w(twitter linkedin)
  => true
Timrael
fuente
1

Puede usar https://graph.facebook.com/v3.0/ {Place_your_Page_ID aquí} / feed? Fields = id, shares, share_count & access_token = {Place_your_access_token_here} para obtener el recuento de acciones.

Gunta Vaishnavi
fuente