許可があり、Facebookユーザーの投稿を取得した場合read_stream
、投稿ごとに上位X件のコメントと上位X件のいいねのみを取得します。いいね/コメントをページ分割してすべて取得する方法はありますか?
投稿に対するすべてのいいねやコメントを返すFQLクエリがある場合、または一度に20程度のページを表示できる場合は、それも機能します。
許可があり、Facebookユーザーの投稿を取得した場合read_stream
、投稿ごとに上位X件のコメントと上位X件のいいねのみを取得します。いいね/コメントをページ分割してすべて取得する方法はありますか?
投稿に対するすべてのいいねやコメントを返すFQLクエリがある場合、または一度に20程度のページを表示できる場合は、それも機能します。
編集:
そのステータスに関するすべてのコメント/いいねを取得するには、各ステータスを取得する必要があります。コメントが必要な特定の投稿がある場合:
$post = '100003978045030_105596009583000';
$comments = array();
$done = false;
$options = array();
$path = '/' . $post . '/comments';
while(!$done){
try{
$data = $facebook->api($path, 'GET', $options);
} catch(FacebookApiException $e) {
echo $e->getMessage();
$data = null;
$done = true;
}
if(!is_null($data)){
$comments = array_merge($comments, $data['data']);
if(isset($data['paging']['next']) && !empty($data['paging']['next'])){
$parts = parse_url($data['paging']['next']);
$path = $parts['path'];
parse_str($parts['query'], $options);
} else {
$done = true;
}
}
}
print_r($comments);
FQLでは、コメントなどのテーブルをクエリするだけです。
SELECT post_id, text, fromid FROM comment
WHERE post_id IN
(SELECT post_id FROM stream WHERE source_id = USER_OR_PAGE_ID
AND comments.count > 0 )
LIMIT 0, 100
これにより、最初の100件の結果が得られます(ただし、表示されていない結果は除外されるため、100件未満が返される場合があります)。
同様のテーブルはページストリーム用にホブルされていることに注意してください。