0

如何使用 FQL 获取我当前的 UID .. 我想通过使用 fql.multiquery 获取用户的朋友来节省流量和请求

"query1": 获取需要我的用户 ID "query2":"SELECT uid, first_name, last_name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=MYUSERID) order by first_name"

应该回报我的朋友!用friends.get和users.getInfo获取用户需要2个请求并且不是最佳的......

谢谢

4

2 回答 2

4

您的第一个查询应该完全没有必要,因为 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,只有在您与登录用户打交道时才能使用。

于 2009-07-26T18:21:42.573 回答
1

该函数me()以 FQL 形式返回您的用户 ID。

要获取您的朋友列表,您可以使用:

SELECT uid, first_name, last_name
FROM user
WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())

您可以在此处找到相关文档:http: //developers.facebook.com/docs/reference/fql/

于 2011-02-10T10:32:07.933 回答