Facebook当前使用FQL的UID

时间:2009-07-26 15:31:17

标签: facebook facebook-fql

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

“query1”:获取我的USERID “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个请求,并且不是最佳...

谢谢

2 个答案:

答案 0 :(得分:4)

您的第一个查询应该完全没必要,因为Facebook始终通过uid参数(POST或GET)向应用程序提供fb_sig_user。我不确定您可以使用哪种FQL查询来获取基于其他形式信息的uid。没有sessions表或FQL可用的任何内容(可用表列出here)。

但是对于多查询,我很确定this page确切地描述了你需要做什么,但是我会按照我的方式将一些代码放在一起。

如果它是一个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']);

这会产生您的查询结果转储。

假设您从[{1}}参数(您应该)获得当前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); ,只有在您处理登录用户时才能使用。

答案 1 :(得分: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/