Facebook SDK を使用して、コメントといいねのリストを問題なく取得できます。しかし、投稿を共有したすべてのユーザーのリストを取得する方法が見つかりません (fql も試しました)。
これは、いいねを取得するために使用したコードです。
$facebook = new Facebook($config);
$likes = $facebook->api('/THE_POST_ID/likes',
array('limit'=>9999999999));
Facebook SDK を使用して、コメントといいねのリストを問題なく取得できます。しかし、投稿を共有したすべてのユーザーのリストを取得する方法が見つかりません (fql も試しました)。
これは、いいねを取得するために使用したコードです。
$facebook = new Facebook($config);
$likes = $facebook->api('/THE_POST_ID/likes',
array('limit'=>9999999999));
これを書いている時点で、Facebook Graph API を使用すると、投稿の共有数を取得できます。コードを使用すると、次のようになります (例を単純にするために、ここでは例外処理を行っていないことに注意してください)。
$facebook = new Facebook($config);
// fetch the post data.
$post = $facebook->api('/THE_POST_ID/');
// fetch the count of shares.
$sharesCount = $post["shares"]["count"];
Graph API Explorerを使用すると、簡単に確認できます。
残念ながら、この API は「いいね」や「コメント」のような「共有」接続を提供しません。詳細については、 Post - Facebook Graph API ドキュメントを参照してください。
一方で、特定の投稿を共有したユーザー (友達と公開共有した人のみ) のリストを取得するための汚いハックがあります。解決策は別のスレッドで説明されています: List of people who shared on facebook . しかし、私はそのソリューションを使用することを決してお勧めしません。
post_id を介して共有を取得しようとしているのはわかっていますが、post_id の代わりに page_id で共有を検索することで解決できますか?
可能であれば、次の FQL を使用して、探しているデータを取得できます。
SELECT via_id, created_time, owner_comment
FROM link
WHERE owner = me()
次に、via_id を投稿の作成者 (ページ ID) と比較して、この共有が問題の投稿の作成者からのものかどうかを判断できます。
残念ながら、一部の via_ids が 0 として返されるデータ リターンにバグがあるようです。この投稿の時点で、中程度の優先度で 3 週間開いている Facebook のチケットがあります。この問題が私のアプリに固有のものなのか、すべての人に影響するのかはわかりませんが、そのクエリで必要なものが得られる可能性があります。