2012-10-31 24 views
6

我們怎樣才能得到朋友的完整列表完整列表,目前我使用的iOS FBRequestConnection startForMyFriendsWithCompletionHandler讓朋友

[FBRequestConnection startForMyFriendsWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 
    if (!error) { 
    // Do stuff 
    } else { 
    // Throw error 
    } 

在響應中,我們得到了一個分頁和下一個URL。有誰知道我們如何循環下一個網址並獲得完整的朋友列表?

Response has 
paging =  { 
     next = "https://graph.facebook.com/1301xxxxxx/friends?fields=id,name,username,first_name,last_name&format=json&access_token=BAAFjJBl9zZBABALFxcbix0aNe0NFOfW8mHCU4ntPaxwooYVo1L6fOWgNTMTZBqLHfxjrWBOXNLjcCwEbkBgZAJX22Ec9PlatgHP9GfjVEWyxk0qGtxxxxxxxxxx&limit=5000&offset=5000&__after_id=10000xxxxxx"; 
}; 

在此先感謝

回答

0

首先,你需要得到下一個鏈接,你需要提取偏移和__after_id參數,根據iPhone parsing url for GET params你會得到字典,參數:

//put here your string with parameters 
    NSString* next = @"https://graph.facebook.com/1301xxxxxx/friends?fields=id,name,username,first_name,last_name&format=json&access_token=BAAFjJBl9zZBABALFxcbix0aNe0NFOfW8mHCU4ntPaxwooYVo1L6fOWgNTMTZBqLHfxjrWBOXNLjcCwEbkBgZAJX22Ec9PlatgHP9GfjVEWyxk0qGtxxxxxxxxxx&limit=5000&offset=5000&__after_id=10000xxxxxx"; 
    NSArray * pairs = [next componentsSeparatedByString:@"&"]; 
    NSMutableDictionary * kvPairs = [NSMutableDictionary dictionary]; 
    for (NSString * pair in pairs) { 
     NSArray * bits = [pair componentsSeparatedByString:@"="]; 
     NSString * key = [[bits objectAtIndex:0] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
     NSString * value = [[bits objectAtIndex:1] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
     [kvPairs setObject:value forKey:key]; 
    } 

您可以通過kvPairs [@「__ after_id」]和kvPairs [@「offset」]獲得正確的參數

下一步創建將此參數添加到您的原點l請求,在原始請求偏移量和id後應該爲零,並且您需要過濾這種情況,如果您完全正確,您將能夠遞歸調用您的ethos

+0

此外這可能會有所幫助http:// stackoverflow.com/questions/4812941/how-to-move-to-the-next-page-in-facebook-json-response-using-ios-sdk –