Comment obtenir le nombre de partages à l'aide de l'API Graph

136

Je peux obtenir le nombre de partages d'une URL à l'aide du SDK PHP et de l'API rest obsolète, mais je n'ai pas trouvé de moyen d'obtenir le nombre de partages d'une URL à l'aide de l'API graphique.

Y a-t-il un moyen de le savoir?

Ashish Pethkar
la source
Obtenez la solution pour vous ici stackoverflow.com/questions/6137414/…
Sakata Gintoki
Veuillez vérifier la réponse ici: stackoverflow.com/questions/9728279/…
Atif Tariq
Réponse du 8 août 2016 (non obsolète): stackoverflow.com/a/39379251/4607317
budi

Réponses:

270

Voici une liste de liens API pour obtenir vos statistiques:

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%%

Edit: Suppression du point de terminaison Twitter, car celui-ci est obsolète.

Edit: l'API REST Facebook est obsolète

Chandrajeet
la source
1
Le LinkedIn ne fonctionne pas (donne 403 accès refusé)
Maxim Krizhanovsky
2
Quelle est la limite d'appels d'API pour chaque demande?
StErMi
8
Salut ! Merci pour cette liste. Je ne trouve pas la documentation du point de terminaison de l'API api.facebook.com/method/links.getStats . Cela fonctionne bien, mais je voudrais m'assurer que cela ne fait pas partie d'une version d'API qui sera bientôt mise hors service. Il est également étrange que cela soit disponible sans authentification ... Voyez-vous quelque chose à ce sujet dans la documentation Facebook? Il ne fait pas partie de l'API graphique ...
Żabojad
10
Le lien Facebook ne fonctionne plus. Utilisez graph.facebook.com/?id=http://www.google.com
MarkOverride
8
@MarkOverride une version encore plus optimisée (moins de bande passante) est graph.facebook.com/?fields=share&id=http://www.google.com . Le problème est que ces nouveaux points de terminaison sont extrêmement limités et qu'il est très difficile de les utiliser en production sans rencontrer lesdites limites. Si quelqu'un a une autre façon de le faire, veuillez nous en informer.
njy
200

MISE À JOUR - Avril 15:

Si vous souhaitez obtenir le nombre disponible dans le bouton J'aime, vous devez utiliser le engagementchamp dans l' og_objectobjet, comme ceci:

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

Résultat:

{
  "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/"
}

C'est possible avec l'API Graph, utilisez simplement:

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

quelque chose comme:

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

Retournerais:

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

MISE À JOUR: alors que ce qui précède répondrait à la façon d'obtenir le nombre de partages . Ce nombre n'est pas égal à celui que vous voyez sur le bouton J'aime , car ce nombre est la somme de:

  • Le nombre de likes de cette URL
  • Le nombre de partages de cette URL (cela inclut le copier / coller d'un lien vers Facebook)
  • Le nombre de likes et de commentaires sur les histoires sur Facebook à propos de cette URL
  • Le nombre de messages de la boîte de réception contenant cette URL en pièce jointe.

Ainsi, obtenir le numéro du bouton Like est possible avec l'API Graph via le fqlpoint final (la link_stattable):

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 est le nombre qui apparaît dans le bouton J'aime.

ifaour
la source
Je n'obtiens pas le nombre de partages pour certains objets. Je sais qu'ils devraient avoir au moins une part.
Jan Deinhard
1
@Fair, oui parfois le nombre n'est pas correct et c'est un peu déroutant. Vous pouvez utiliser la table fql suggérée par l'autre réponse, mais quand même ... parfois les nombres ne sont pas corrects aussi!
ifaour
est-il possible de prendre des parts de quelques sites?
Aziz
@Aziz, que voulez-vous dire?
ifaour
3
Comme la doc v2.6 ne vous permet pas d'obtenir share_count, like_countet comment_count, semble fql- t-il , l'API REST reste la meilleure option ... Mais les deux fqlet l'API REST ne seront plus disponibles après le 7 août 2016! Aucune suggestion?
Daniel García Baena
21

Vous ne devez pas utiliser graph api. Si vous appelez:

ou

les deux reviendront:

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

Mais le nombre indiqué est la somme de :

  • nombre de j'aime cette URL
  • nombre de partages de cette URL (cela inclut le copier / coller d'un lien vers Facebook)
  • nombre de likes et de commentaires sur des histoires sur Facebook à propos de cette URL
  • nombre de messages de la boîte de réception contenant cette URL en pièce jointe.

Vous devez donc utiliser FQL.
Regardez cette réponse: Comment récupérer les likes facebook, partager, les commentaires comptent à partir d'un article

Freedev
la source
vous avez tout à fait raison, par total_shares est la somme des commentaires + likes + partages mais la page que j'ai demandée, montre share_i_have = total_shares + likes
Aziz
14

Après le 7 août 2016, vous pouvez toujours passer votre appel comme ceci:

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

mais le format de la réponse sera différent: ce ne sera pas

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

mais à la place ce sera

{
   "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"
}

Vous devrez donc traiter la réponse comme ceci:

reponse_variable.share.share_count
Giorgio Tempesta
la source
1
Mais la valeur share_count est trompeuse, car elle fait référence à la somme des likes + des actions
Alon Bilu
Je suppose que vous avez raison, ma réponse était juste une mise à jour sur la façon d'appeler l'API. Je pense que ce que @freedev a dit à propos du décompte des parts peut encore être correct.
Giorgio Tempesta
8

Ce que j'ai trouvé utile et que j'ai trouvé sur un lien ci-dessus est cette requête FQL où vous demandez des likes, le total, le partage et le nombre de clics d'un lien en regardant la table 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

Cela produira quelque chose comme ceci:

{
    data: [
        {
             like_count: 3440162,
             total_count: 13226503,
             share_count: 7732740,
             click_count: 265614,
             comment_count: 2053601
         }
    ]
}
Juanjo Lainez Reche
la source
2
À partir du 8 août 2016, FQL ne sera plus disponible et ne pourra plus être interrogé. Pour migrer votre application, utilisez l'outil de mise à niveau d'API pour voir les appels d'API Graph que vous pouvez effectuer à la place.
Nguyen Minh Binh
7

Découvrez cet essentiel . Il contient des extraits pour savoir comment obtenir le nombre de partages pour les services suivants:

  • Facebook
  • Twitter
  • Google Plus
  • Pinterest
  • LinkedIn
  • Trébuché sur
Muhammad Reda
la source
C'est vieux de quelques années. Avec la fréquence à laquelle chaque service met à jour son API, je doute que ce soit très précis.
subvertallchris
4

Le bouton J'aime de Facebook fait deux choses que l'API ne fait pas. Cela peut créer de la confusion lorsque vous comparez les deux.

  1. Si l'URL que vous utilisez dans votre bouton J'aime a une redirection, le bouton affichera en fait le nombre de l'URL de redirection par rapport au nombre de l'URL que vous utilisez.

  2. Si la page a une propriété og: url, le bouton like affichera les goûts de cette URL au lieu de l'url dans le navigateur.

J'espère que cela aide quelqu'un

Roland
la source
1

quand j'ai utilisé FQL j'ai trouvé le problème (mais c'est toujours un problème) la documentation dit que le nombre indiqué est la somme de:

  • nombre de j'aime cette URL
  • nombre de partages de cette URL (cela inclut le copier / coller d'un lien vers Facebook)
  • nombre de likes et de commentaires sur des histoires sur Facebook à propos de cette URL
  • nombre de messages de la boîte de réception contenant cette URL en pièce jointe.

mais sur mon site Web, le nombre indiqué est la somme de ces 4 comptes + le nombre d'actions (encore une fois)

Aziz
la source
1

En utilisant FQL, vous pouvez le faire:

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

Il y a un joyau rubis pour cela - SocialShares

Actuellement, il prend en charge les réseaux sociaux suivants:

  • Facebook
  • Twitter
  • Google Plus
  • reddit
  • LinkedIn
  • pinterest
  • trébucher
  • vkontakte
  • mail.ru
  • odnoklassniki

Usage:

: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
la source
1

Vous pouvez utiliser https://graph.facebook.com/v3.0/ {Place_your_Page_ID here} / feed? Fields = id, Shares, share_count & access_token = {Place_your_access_token_here} pour obtenir le nombre de partages.

Gunta Vaishnavi
la source