正如主题所说,我正试图从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)