如何使用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个请求,并且不是最佳...
谢谢
答案 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/