获取最近的评论从Facebook页面与相关的用户数据


Get recent comments from Facebook page with associated user data

正如主题所说,我正试图从Facebook页面获得最新的评论,以及相关的用户数据。我正在使用Open Graph &PHP SDK

$fql_query = "
    SELECT fromid, id, post_id, time, text  
    FROM comment  
    WHERE post_id IN (SELECT post_id FROM stream WHERE source_id = '" . $fb_id . "') 
    ORDER BY time DESC LIMIT 1000";
$feed = $facebook->api(array(
    'method' => 'fql.query',
    'query' => $fql_query
    ));

下面是获取我需要的用户详细信息的方法:

$fql_query = "
    SELECT pic_square, name  
    FROM user 
    WHERE uid = '" . $user_id . "'
    ";

并且,根据我能找到的所有内容,这应该使用fql.multiquery:

将两者结合起来
$fql_queries = "{
    '"query1'" : '"
    SELECT fromid, id, post_id, time, text 
    FROM comment 
    WHERE post_id IN (SELECT post_id FROM stream WHERE source_id = '" . $fb_id . "') 
    ORDER BY time DESC LIMIT 1000
    '", 
    '"query2'" : '"SELECT pic_square, name FROM user WHERE uid IN (SELECT fromid FROM #query1)'"
    }";
$feed = $facebook->api(array(
    'method' => 'fql.multiquery',
    'queries' => $fql_queries
    ));

但是它只是返回一个空数组。有没有人知道我哪里错了,或者有更好的方法来做我需要什么?TIA,一如既往。

我在我的一个页面上的图形API资源管理器中测试了这个,它工作得很好。

这个多查询工作在你的页面在图形API资源管理器?如果是,则是权限问题。

也许你的问题是你硬编码json的方式。我在我的网站上使用这样的语法。(这也更容易读):

$fql_queries = array(
   'query1' => "SELECT fromid, id, post_id, time, text...",
   'query2' => "SELECT pic_square, name FROM user..."
);
...
    'queries' => json_encode($fql_queries)