2012-06-27 18 views
1

我有一个PhoneGap应用程序,我需要列出所有在Facebook上授权应用程序的用户的朋友。如何才能获取正在使用我的应用的用户(朋友)?

我目前使用的是FB.api('/me/friends?fields=installed', callbackFnc),但这显示我所有朋友,指出其中哪些人已授权应用程序。当我真的想列出只有的授权。 这会减慢很多加载朋友的过程。

我在这里看到了其他类似的问题,但他们都没有答案。

解决方案:由于CBroe
我不能有sucess直接传递到FQL FB.api,但只使用该对象:

var apiQuery = 
{ 
    method: 'fql.query', 
    query: 'SELECT uid, name FROM user WHERE uid IN (SELECT uid1 FROM friend WHERE uid2 = me()) AND is_app_user' 
} 

FB.api(apiQuery, function(response){...}); 

回答

2

使用FQL代替:

SELECT uid, name FROM user WHERE uid IN 
    (SELECT uid1 FROM friend WHERE uid2 = me()) AND is_app_user 

(您也可以针对Graph API设置该查询,/fql?q={query}。)

+0

通过GraphAPI使用FQL会有很大的帮助,我不知道这是可能的。但我尝试过,并有错误。使用围绕FQL的括号:{“error”:{“message”:“(#601)解析器错误:意外的'{'位于0。”,“type”:“OAuthException”,“code”:601}} 不使用括号:{“error”:{“message”:“(#601)解析器错误:意外的'{'在位置0。”,“type”:“OAuthException”,“code”:601}} –

+0

FB .api(“/ fql?q = {SELECT uid,name FROM user WHERE uid IN(SELECT uid1 FROM friend WHERE uid2 = me())AND is_app_user}”,callback); –

+0

__NO__括号......这只是意味着把你的查询放在那里_ ...'/ fql?q = SELECT ...'(现在不要告诉我,'SELECT ...'也给出错误;-) ...) – CBroe

相关问题