Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法获取用于Facebook的3查询FQL multiquery';s PHP SDK_Php_Facebook_Facebook Php Sdk_Facebook Fql - Fatal编程技术网

无法获取用于Facebook的3查询FQL multiquery';s PHP SDK

无法获取用于Facebook的3查询FQL multiquery';s PHP SDK,php,facebook,facebook-php-sdk,facebook-fql,Php,Facebook,Facebook Php Sdk,Facebook Fql,我已经在Facebook的连接和配置中设置了3个查询。配置是正确的,因为我得到了返回值。以下是我的疑问: $fql_friends_fan_pages = array( 'query1' => "SELECT uid2 FROM friend WHERE uid1 = me()", //get all me()'s friends 'query2' => "SELECT page_id FROM page_fan WHERE uid IN (SELECT uid2 F

我已经在Facebook的连接和配置中设置了3个查询。配置是正确的,因为我得到了返回值。以下是我的疑问:

$fql_friends_fan_pages = array(
    'query1' => "SELECT uid2 FROM friend WHERE uid1 = me()", //get all me()'s friends
    'query2' => "SELECT page_id FROM page_fan WHERE uid IN (SELECT uid2 FROM #query1)", //get all fan page references from friends
    'query3' => "SELECT name FROM page WHERE page_id IN (SELECT page_id FROM #query2)" //get all info from friends' fan pages
);
返回的是第二次查询的结果,而不是第三次查询的结果;它似乎完全忽视了这一点。我正在尝试获取我所有朋友页面的信息。它不是检索所有名称,而是打印每个页面的页面id(来自query2)。知道为什么它忽略了第三个查询吗

编辑:

通过将第一个和第二个查询合并到一个更大的查询中,我成功地实现了它。FQL多重查询中是否有2个查询的已知限制

$fql_friends_fan_pages = array(
    'query1' => "SELECT uid2 FROM friend WHERE uid1 = me()", //get all me()'s friends
    'query2' => "SELECT page_id FROM page_fan WHERE uid IN (SELECT uid2 FROM #query1)", //get all fan page references from friends
    'query3' => "SELECT name FROM page WHERE page_id IN (SELECT page_id FROM #query2)" //get all info from friends' fan pages
);
$params_friends_fan_pages = array(
    'method' => 'fql.multiquery',
    'queries' => $fql_friends_fan_pages
);
$friends_fan_pages = $facebook->api($params_friends_fan_pages);

我看不出你的问题。你应该得到这三个方面的数据。如果PHPSDK对多查询有限制,则该限制高于7。我以前曾多次运行过复杂的数据刮取。我注意到另一件奇怪的事情——通常当我提交多个查询(在我的例子中是两个查询)时,我希望返回一个包含两个查询结果的数组。从那里我只抓取最后一个数组,因为这是最后一个查询的结果集。在上面的查询中,我只返回一个数组;第一个查询没有结果集。结果集相当大(4000多个项目),所以我想知道结果集的大小是否会影响返回的结果集?我尝试过对查询2设置一个限制(50个),但这似乎没有帮助,也许我遗漏了什么?对于多重查询,您应该得到一个大数组,其中每个查询的结果都在子数组中。您可以发布完整的
api
调用的代码以及结果处理程序吗?顺便说一句,如果您不打算使用
query1
query2
的结果,您应该使用单个嵌套查询,而不是多查询。性能更快。嵌套查询的优点很好。我认为定义单独查询的可能性是为了帮助可维护性和代码理解。