I want to retrieve all of the posts from a given facebook page along with the associated comments.
I wrote this code (app details obfuscated, replace with your own in order to run it).
<?php
require_once('facebook.php');
$facebook = new Facebook(array(
'appId' => 'MY_APP_ID',
'secret' => 'MY_APP_SECRET',
'cookie' => true,
));
$pages = array(
"stackoverflow" => 11239244970
);
$result = $facebook->api(array(
'method' => 'fql.multiquery',
'queries' => '{
"posts": "select post_id, source_id, actor_id, target_id, likes, message from stream where source_id = '.$pages["stackoverflow"].'",
"comments": "select post_id, text, username, fromid from comment where post_id in (select post_id from #posts)"
}'
));
echo json_encode($result);
?>
posts
returns the expected results, but comments
returns just one comment.
This example queries the stackoverflow facebook page
The comment returned from the comments
query is "Joined!" (from this post). I can't figure out what's special about this comment.
Any thoughs?
I tried to find a solution playing with Graph Api
is working but when returning comments it returns only the last 2. It's exaclty how Facebook itself shows the stream and comments with "View all XX comments" link.
To query the posts and comments together can be used:
According to Facebook: