您的第一个查询应该完全没有必要,因为 Facebook 总是通过参数(POST 或 GET)uid
向应用程序提供。fb_sig_user
我不确定您可以使用哪种 FQL 查询来获取uid
基于其他形式的信息。FQL没有可用的表或任何可用的表(可用表在此处sessions
列出)。
然而,对于多查询,我相当肯定这个页面准确地描述了您需要做的事情,但我会以我会做的方式将一些代码放在一起。
如果它是一个 PHP 应用程序,并且我想做这个服务器端,我将创建几个 JSON 格式的字符串并将它们作为查询发送,如下所示:
$fql= '{
"userinfo":"SELECT uid FROM user_standard_info WHERE first_name=\'zombat\'",
"friends":"SELECT uid2 FROM friend WHERE uid1 IN (SELECT uid FROM #userinfo)}"
}';
$res = $facebook->api_client->fql_multiquery($fql);
print_r($res['userinfo']);
print_r($res['friends']);
这应该会生成查询结果的转储。
假设您uid
可以从fb_sig_user
参数中获得电流(您应该),那么您的问题应该通过以下方式解决:
$fql= '{
"friends":"SELECT uid2 FROM friend WHERE uid1='.$your_uid.',"
"friendinfo":"SELECT * FROM standard_user_info WHERE uid IN (SELECT uid2 FROM #friends)"
}';
$res = $facebook->api_client->fql_multiquery($fql);
注意:您可能需要仔细查看您尝试执行的一些查询。许多表,例如friend
,只有在您与登录用户打交道时才能使用。