如何使用FQL获取我当前的UID。我想通过fql.multiquery获得用户的好友来节省流量和请求
"query1":GET NEED MY USERID "query2":"SELECT uid,first_name,last_name FROM user WHERE uid IN (SELECT uid2 FROM WHERE uid1=MYUSERID) order by first_name“
应该还我的朋友!先用friends.get获取用户,再用users.getInfo获取用户需要2个请求,这并不是最优的……
谢谢
发布于 2009-07-26 18:21:43
您的第一个查询应该是完全不必要的,因为Facebook总是通过fb_sig_user参数(POST或GET)为应用程序提供uid。我不确定您可以使用哪种类型的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']);这应该会产生查询结果的转储。
假设您已经从fb_sig_user参数获得了当前的uid (您应该这样做),那么您的问题应该可以通过下面这样的方式来解决:
$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,只有在处理登录用户时才能使用。
发布于 2011-02-10 18:32:08
函数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/
https://stackoverflow.com/questions/1184843
复制相似问题