我不确定为什么我的请求没有正确地提取我正在寻找的数据。我是FQL的新手,不知道如何将WHERE IN
完全合并到这种格式中。我试图避免使用facebook对象。
我的查询目的是获取过去100个帖子中喜欢的人的user_id
个帖子。
$fql_multiquery_url = 'https://graph.facebook.com/fql?q='
. '"post+ID":"SELECT+post_id+FROM+stream+WHERE+source_id=6979393237+LIMIT+100",'
. '"like+ID":"SELECT+user_id+FROM+like+WHERE+post_id+IN+#postID"}'
. '&access_token=' . $access_token;
答案 0 :(得分:1)
您的FQL多查询看起来很有意义,但为什么不起作用?
#this
不是变量(但是包含多行的完整结果集),因此您需要编写一个额外的查询(使用SELECT
)来获取有趣的行(例如post_id
})。{
中的左大括号。FQL查询:
{ "posts":"SELECT post_id FROM stream WHERE source_id=6979393237 LIMIT 100", "likes":"SELECT user_id FROM like WHERE post_id IN (SELECT post_id FROM #posts)" }
PHP代码:
$fql_multiquery_url = 'https://graph.facebook.com/fql?q={'
. '"posts":"SELECT+post_id+FROM+stream+WHERE+source_id=6979393237+LIMIT+100",'
. '"likes":"SELECT+user_id+FROM+like+WHERE+post_id+IN+(SELECT+post_id+FROM+#posts)"}'
. '&access_token=' . $access_token;
答案 1 :(得分:0)
为什么不以下:
$fql_query_url = 'https://graph.facebook.com/fql?q=SELECT+user_id+FROM+like+WHERE+post_id+IN+(SELECT+post_id+FROM+stream+WHERE+source_id=6979393237)+LIMIT+100&access_token=' . $access_token;
如果您可以使用查询嵌套,我认为不需要两个单独的查询(参见此处:https://developers.facebook.com/docs/technical-guides/fql/#query)