正如主题所说,我试图从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,一如既往。
答案 0 :(得分:2)
我在其中一个网页上的Graph API资源管理器中对此进行了测试,但效果很好。
此多重查询是否可以在Graph 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)