2011-09-02 75 views

回答

0

一旦用戶批准了您的應用程序,你可以這樣FQL查詢:

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

全功能:

function getFriends() { 
    FB.login(function(response) { 
     if (response.session && response.perms) { 
     FB.api(
      { 
      method: 'fql.query', 
      query: 'SELECT uid, name, pic FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND is_app_user = 1' 
      }, 
      function(response) { 
      alert('Friends using app: ' + JSON.stringify(response)); 
      } 
     ); 
     } 
    } , {perms:''}); 
} 
+0

嗨,thx的答案。我只需要在應用程序中的朋友。我通過friends.getAppUsers獲取了id。所以我需要每個ID的名稱和圖片。我不想要幾個請求,但需要一個方法來獲取名稱和圖片集的ID。 – degressor

+0

我更新了我的答案。沒有看到你只是在尋找你的應用程序的用戶。 – bkaid

0

使用fields參數API請求:

fields=name,id,picture 

默認情況下,圖形API僅返回nameid。指定您想要他們在fields列表中的個人資料照片也會給你照片。因此,使用的JavaScript SDK完整的請求會是這個樣子:

FB.api('/me/friends', { fields: 'name,id,picture' }, function(response) { 
    // ... 
} 

UPDATE:拿到照片一組ID的你已經有了,你必須使用FQL像這樣:

SELECT uid, name, pic FROM user 
    WHERE uid IN (uid1, uid2, uid3,...) 

用您的ID列表替換uid1等。

或者,您可以使用batch request一次向/uidX/picture發出幾個API請求。我不知道javascript SDK對你有多大幫助,它可能需要更多的工作而不是價值。我只需要使用FQL。

+0

但是,如果我有一組身份證,我怎樣才能一次拿到他們? – degressor

+0

您必須使用FQL(請參閱我的更新)。我不知道常規Graph API可以做這樣的過濾(儘管我有興趣證明是錯誤的)。 – chesles