-1

I am trying this from the last two days but not getting any solution. Please help me. i want to fetch the friend list of facebook friends, i am using this code

loginButton.readPermissions =
    @[@"public_profile", @"email", @"user_friends", @"read_custom_friendlists"];

if ([FBSDKAccessToken currentAccessToken]) {
        [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil]
         startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
             if (!error) {
                 NSLog(@"fetched user:%@", result);
             }
         }];

         FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                              initWithGraphPath:@"/me/taggable_friends"
                              parameters:@{@"fields": @"id, name"}
                              HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    NSLog(@"%@",result);
}];


    }



   but in the response i am getting :

fetched user:{
    id = 102045934964446131;
    name = "xyz zyz";
}
      id = "AaKwxUJHqY8miA_dKdOIEoDc1NDF4nTw_K4s-JKAYvFqDdyXYe_dsOyDiUuKPh285CNlc5pAvtHhD7K9PbrpfP8pZmsYwujUenNjdfrUOkrm8g";
        name = "Anshul Katiyar";
    },
            {
        id = "AaLx7VNhGwdmA0vyZjy-Ry7II2kEVeQweLp54HiJC2TU5yIN6Qkl-aT811aqm0aea6pjRy-amUTz3gEXanjuQIKvHXiu-cICJ-VXjnchyL1kug";
        name = "Madhu Verma";

    },
            {
        id = "AaLPkAwYvi6aFu8uTgLfTc0QAbS1tlSM600NF07QOezuwEibLjp8Tq2N7TFKuUrXrwsTmAY5bFhtxEg6XmcVJMZ1xLhrQiMR_hNasPsCpiPpYQ";
        name = "Manojsharma Manojsharma";
    },
            {
        id = "AaIyxf6jtQT_c05h3JdJ18pWNYwRYREKf2A5hIiz9qdp-ehXbvYkwMgTbqF4RptgiyxgdUObU8tLcKDTt2JNpPOWFrXty00OsbMqBrK_Up0Xpg";
        name = "Aarti Tripathi";
    },
            {
        id = "AaJPoNnjzzIT6ELXyl56NTpkGx7xtT5J1wf_WOsX4BD4AFvDTcAOt0sn9m51VaJhSTDwC7eUkU7Gw5hPBHyZn8YxsD9HpwgGnZzxnE7yN853jA";
        name = "Vaibhaw Singh";
    },
            {
        id = AaJE5GA9QFr7oD8KY3Gak4h5aJqrHHHh4WYWKWCvpg97V2HSDm8UjSuygfMMg08QIDPWe20qRqY4eP3R9N82AhJ9Lzg1TpjzNdDZsJoy1hWrmg;
        name = "Saurabh Verma";
    },
            {
        id = "AaKGTx-vlLOyuNExGrlcqoFpwQRMtAHqwtCeuslQfriLeN8pDyB0D_qQeIpIULSIcwVB2fGltbOkMW9Mp94AzX2Y2egxgJw0lAHRCE45DJlkIg";
        name = "Udit Katiyar Nitiya";
    }
);
paging =     {
    cursors =         {
        after = QWFMRWdjYUM1aVlpYW00U2t6Ym5oUnpqdW0tdm1xZA2RSQTc3dk16N1d3WnNEaG81Q2V1ekNTRHNCSEtjYjVPam1XbGZAVRGE0UGsxSEdxZADJZAZAkkwX3BHYlZAodGFBQmNPUmlYWTRfNUtkeVVLUmcZD;
        before = QWFJLXktdTVqeEFOR05ueHRWSWE4eWs0WE5nQVJUN0o5eC03YWVpcW10YkRObjMtNmZAXeTRXTDh5WUNrLV9tQnZAiWWdOSFNrVk8wZATl5a3ZAYWVpsRUxDVnpORG5POG1jZAlpIbm5DS0FFcHZAxb3cZD;
    };
    next = "https://graph.facebook.com/v2.9/10204593496146131/taggable_friends?access_token=EAAasBqLeUy0BAIRjZCZBlRXD4Hleg3J8712Drm5BZA6DC3bvLZCcPy6iklwPi77ymOoj888GjZBhyWdZAyI4nK1hSr2D1ZAvpTjYrc4L2cVZAVuYoeRe39mxVPczuH5GZBHHngGIoTAPv5AdnXPjsybJlt2t4fAmRFGaw8ZC1GiJHLtZCsbYEyvsKYCpGCaWJNNVOFcwUZBaKwM5xZB9DoJw7wFzL&fields=id%2C+name&limit=25&after=QWFMRWdjYUM1aVlpYW00U2t6Ym5oUnpqdW0tdm1xZA2RSQTc3dk16N1d3WnNEaG81Q2V1ekNTRHNCSEtjYjVPam1XbGZAVRGE0UGsxSEdxZADJZAZAkkwX3BHYlZAodGFBQmNPUmlYWTRfNUtkeVVLUmcZD";
};

i am getting this output but this is not the full list of friends i want full list how to get that list. i want to get the email, name and id of all the friends. I have total friends of 267 but not showing any details of the friends. please help.

Thanks In advance

user7356913
  • 15
  • 2
  • 6

2 Answers2

0

Here is my working code to get friends from Facebook. Hope it will help you.

-(void)getFacebookFriend
{
    if (FBSession.activeSession.isOpen)
    {
           [self ListFriend];
    }
    else
    {
        NSArray *permissions = [[NSArray alloc] initWithObjects:@"email",@"user_friends",@"public_profile", nil];

        [FBSession openActiveSessionWithReadPermissions:permissions
                                           allowLoginUI:YES
                                      completionHandler:
         ^(FBSession *session,
           FBSessionState state, NSError *error) {
             if(!error)
             {

                 [SVProgressHUD showWithStatus:PLEASE_WAIT];
                 [self performSelector:@selector(ListFriend) withObject:nil afterDelay:0.2];
             }
             else
                 [SVProgressHUD dismiss];
         }];
    }
}
-(void)ListFriend
{

    NSMutableDictionary *params = [NSMutableDictionary new];
    [params setObject:@"id, first_name, last_name, middle_name, name, email, picture" forKey:@"fields"];
    [params setObject:[NSString stringWithFormat:@"500"] forKey:@"limit"];
    if(_strPageToken.length > 0)
    {
        [params setObject:_strPageToken forKey:@"paging_token"];
        [params setObject:_strUntill forKey:@"until"];

    }

    [[FBRequest requestWithGraphPath:@"me/taggable_friends" parameters:params HTTPMethod:nil] startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error)
     {
         NSArray *aryFriend = result[@"data"];
         [_aryContact addObjectsFromArray:aryFriend];
         NSLog(@"%lu",(unsigned long)aryFriend.count);
         NSMutableDictionary *dicPaging = result[@"paging"];

         if(dicPaging[@"next"])
         {

             _strNextURL = [NSString stringWithFormat:@"%@",dicPaging[@"next"]];
         }
         else
         {
             NSLog(@"Final Array count:    %lu",(unsigned long)_aryContact.count);
         }
     }];
}
Nirmalsinh
  • 4,965
  • 3
  • 21
  • 48
0

Get Permissions:

 NSArray *permissions = @[@"user_birthday", @"friends_hometown",
                        @"friends_birthday", @"friends_location"];
[FBSession openActiveSessionWithReadPermissions:permissions allowLoginUI:YES completionHandler: .....
NSLog(@"permissions::%@",FBSession.activeSession.permissions);

Post FBRequest:

FBRequest *friendRequest = [FBRequest requestForGraphPath:@"me/friends?fields=name,picture,birthday,location"];
 [ friendRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
    NSArray *data = [result objectForKey:@"data"];
    for (FBGraphObject<FBGraphUser> *friend in data) {
        NSLog(@"%@:%@", [friend name],[friend birthday]);
 }}];

Also you can try requestForMyFriends on SDK 3.0 onwards. NB: It may provide Birthday information

FBRequest* friendsRequest = [FBRequest requestForMyFriends];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,
                                  NSDictionary* result,
                                  NSError *error) {
    NSArray* friends = [result objectForKey:@"data"];
    NSLog(@"Found: %lu friends", (unsigned long)friends.count);
    for (NSDictionary<FBGraphUser>* friend in friends) {
        NSLog(@"I have a friend named %@ with id %@", friend.name, friend.objectID);
    }
}];
Lal Krishna
  • 12,476
  • 4
  • 53
  • 65