web-dev-qa-db-fra.com

Liste des personnes qui ont partagé sur Facebook

J'ai parcouru les documents pendant un certain temps maintenant et je n'arrive pas à trouver un moyen d'y parvenir. Les informations sont disponibles publiquement (sur une page facebook ... le lien dit "Voir tous les # partages") mais je n'arrive pas à trouver un moyen d'accéder à ces informations via FQL ou l'API graphique.

Je sais que je peux obtenir une liste de likes pour un poste donné:

https://graph.facebook.com/87236249496_134765166623967/likes

Le but est d'obtenir une liste de personnes qui ont partagé - mais il ne semble pas y avoir le même genre de chose pour les partages. Suis-je en train de manquer quelque chose?

23
Will

Aller à... http://www.facebook.com/ajax/shares/view/?target_fbid=10154612868272801&__a=1

10154612868272801 est l'ID de l'histoire Facebook, __a signifie asynchrone.

Vous verrez une grande quantité de texte/JSON, il s'agit essentiellement de HTML et JS pour une petite fenêtre contextuelle. Il y a une partie de texte comme hovercard.php?id=## est l'ID utilisateur Facebook, utilisant preg_match_all vous obtenez alors tous les ID utilisateur qui ont partagé ce message.

Par exemple: 100000541151971 (Eric) et 9204448 (Courtney) ...

Malheureusement, vous devez être connecté à Facebook pour faire la première étape, comprenez-le :)

10
Dejan Marjanovic

Vous pouvez le faire via la connexion "graph.facebook.com/OBJECT_ID/sharedposts":

enter image description here

Je comprends cette connexion via metadata = 1 paramètre:

enter image description here

15
林果皞

Tye ce lien: https://graph.facebook.com/134765166623967/sharedposts (avec un access_token valide)

L'identifiant dans le lien est l'identifiant de la borne murale (87236249496_134765166623967) moins l'ID de la page (87236249496) et le trait de soulignement moins.

Vous aurez également besoin de l'autorisation read_stream

2
Steven Delrue

Je pense que vous pouvez obtenir le share_count de la table de flux par requête FQL comme

 
 SELECT type, source_id, share_count, permalink, description, post_id, acteur_id, target_id, message, share_count 
 FROM flux 
 WHERE filter_key = 'others' et post_id = '87236249496_134765166623967' 
 

vous pouvez le tester https://developers.facebook.com/tools/Explorer/

Remarque: vous devez prendre les autorisations read_stream comme expliqué ici

2
HMagdy

Je sais que vous cherchez à obtenir des partages via le post_id, mais pouvez-vous vous contenter de trouver des partages par page_id au lieu de post_id?

Si vous le pouvez, vous pouvez utiliser le FQL suivant pour obtenir les données que vous recherchez.

SELECT via_id, created_time, owner_comment
FROM link
WHERE owner = me()

Vous pouvez ensuite comparer via_id à l'auteur des articles (ID de page) pour déterminer si ce partage provient de l'auteur de l'article en question.

Malheureusement, il semble y avoir un bug avec le retour des données où certains des via_ids reviennent à 0. Il y a un ticket avec Facebook qui, au moment de cette publication, était ouvert depuis trois semaines à priorité moyenne. Je ne sais pas si ce problème est spécifique à mon application ou affecte tout le monde, mais cette requête peut vous procurer ce que vous voulez.

1
Brent M Clark