FQL中的多查询未正确提取数据

时间:2014-01-12 03:43:01

标签: php facebook facebook-fql

我不确定为什么我的请求没有正确地提取我正在寻找的数据。我是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;

2 个答案:

答案 0 :(得分:1)

您的FQL多查询看起来很有意义,但为什么不起作用?

  1. 请勿在查询名称中使用空格。
  2. #this不是变量(但是包含多行的完整结果集),因此您需要编写一个额外的查询(使用SELECT)来获取有趣的行(例如post_id })。
  3. 您忘记了FQL查询{中的左大括号。
  4. 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)"
    }
    

    Test it.

    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