iOS FBRequestConnection startForMyFriendsWithCompletionHandler获取完整的好友列表

时间:2012-10-31 13:39:04

标签: ios facebook

我们如何获得完整的朋友列表,目前我正在使用

[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";
};

提前致谢

1 个答案:

答案 0 :(得分: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”]获得正确的参数

下一步创建将此参数添加到原始请求中,原始请求偏移量和id应该为nil之后,您需要过滤此情况,如果您将完成所有操作,您将能够递归调用您的精神< / p>