I am retrieving facebook friends list by using social framework. Kindly look at my following code that how I am doing but It give me only few friends not all. I checked on two accounts, 1 account has 300 and it returns me only one and one has 50 and it returns me only 3. I also hit next page but that is empty.
NSArray *accounts = [_accountStore accountsWithAccountType:FBaccountType];
//it will always be the last object with single sign on
_facebookAccount = [accounts lastObject];
ACAccountCredential *facebookCredential = [_facebookAccount credential];
NSString *accessToken = [facebookCredential oauthToken];
NSLog(@"Facebook Access Token: %@", accessToken);
_facebookAccount = [accounts lastObject];
_facebookToken = [facebookCredential oauthToken];
// _facebookToken = _facebookAccount.credential.oauthToken;
NSLog(@"facebook account =%@",_facebookAccount);
// Request friend list
NSDictionary *param=[NSDictionary dictionaryWithObjectsAndKeys:@"picture,id,name,link,gender,last_name,first_name",@"fields", nil];
SLRequest *friendsListRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodGET
URL: [[NSURL alloc] initWithString:@"https://graph.facebook.com/me/friends"] parameters:param];
friendsListRequest.account = _facebookAccount;
[friendsListRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
// Parse response JSON
NSError *jsonError = nil;
NSDictionary *data = [NSJSONSerialization JSONObjectWithData:responseData
options:NSJSONReadingAllowFragments
error:&jsonError];
NSMutableArray * fbFriends=[[NSMutableArray alloc] init];
for (NSDictionary *friend in data[@"data"]) {
NSLog(@"name: %@", friend[@"name"]);
[fbFriends addObject:friend];
}
[[NSUserDefaults standardUserDefaults] setObject:fbFriends forKey:@"FBFriends"];
}];
Kindly suggest me where I am doing wrong. Thanks in advance.