web-dev-qa-db-ja.com

Facebookで共有した人のリスト

私はしばらくドキュメントを精査しており、これを達成する方法を見つけることができないようです。情報は公開されています(facebookページで...リンクに「すべての#共有を表示」と表示されています)。

特定の投稿のいいねのリストを取得できることはわかっています。

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

目標は、共有した人のリストを取得することです-しかし、共有について同じようなことはないようです。何か不足していますか?

23
Will

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

10154612868272801はFacebookストーリーIDで、__aは非同期を表します。

あなたは大量のテキスト/ JSONを見るでしょう、それは基本的に小さなポップアップウィンドウのためのHTMLとJSです。 hovercard.php?id=#のようなテキストの一部があり、#はFacebookユーザーIDです。preg_match_allを使用すると、その投稿を共有したすべてのユーザーIDを取得できます。

例:100000541151971(エリック)および9204448(コートニー)...

残念ながら、最初のステップを実行するにはFacebookにログインする必要があります。

10

「graph.facebook.com/OBJECT_ID/sharedposts」接続を介してそれを行うことができます:

enter image description here

metadata = 1パラメータを介してこの接続を把握します。

enter image description here

15
林果皞

このリンクをTye: https://graph.facebook.com/134765166623967/sharedposts (有効なaccess_tokenを使用)

リンク内のIDは、ウォールポストID(87236249496_134765166623967)からページID(87236249496)を差し引いて、アンダースコアを引いたものです。

また、read_stream権限が必要です。

2
Steven Delrue

私はあなたが同じようにFQLクエリでストリームテーブルからshare_countを取得できると思います

 
 SELECTタイプ、source_id、share_count、permalink、description、post_id、actor_id、target_id、message、share_count 
 FROMストリーム
 WHERE filter_key = 'others' and post_id = '87236249496_134765166623967' 
 

あなたはそれをテストすることができます https://developers.facebook.com/tools/Explorer/

注:説明どおりにread_stream権限を取得する必要があります ここ

2
HMagdy

Post_idを通じて共有を取得しようとしていることは承知していますが、post_idではなくpage_idで共有を見つけることで解決できますか?

可能であれば、次のFQLを使用して、探しているデータを取得できます。

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

次に、via_idを投稿の作成者(ページID)と比較して、この共有が問題の投稿の投稿者からのものかどうかを判断できます。

残念ながら、via_idの一部が0として返されるというデータリターンのバグがあるようです。この投稿の時点で、中程度の優先度で3週間開いているチケットがFacebookにあります。この問題が自分のアプリに固有なのか、それともすべてのユーザーに影響するのかはわかりませんが、そのクエリで問題が解決する可能性があります。

1
Brent M Clark