2012-06-27 53 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

相關問題