私はしばらくドキュメントを精査しており、これを達成する方法を見つけることができないようです。情報は公開されています(facebookページで...リンクに「すべての#共有を表示」と表示されています)。
特定の投稿のいいねのリストを取得できることはわかっています。
https://graph.facebook.com/87236249496_134765166623967/likes
目標は、共有した人のリストを取得することです-しかし、共有について同じようなことはないようです。何か不足していますか?
移動... 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にログインする必要があります。
「graph.facebook.com/OBJECT_ID/sharedposts」接続を介してそれを行うことができます:
metadata = 1パラメータを介してこの接続を把握します。
このリンクをTye: https://graph.facebook.com/134765166623967/sharedposts (有効なaccess_tokenを使用)
リンク内のIDは、ウォールポストID(87236249496_134765166623967)からページID(87236249496)を差し引いて、アンダースコアを引いたものです。
また、read_stream権限が必要です。
私はあなたが同じように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権限を取得する必要があります ここ
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にあります。この問題が自分のアプリに固有なのか、それともすべてのユーザーに影響するのかはわかりませんが、そのクエリで問題が解決する可能性があります。