Graph API v2.0+ /me/friends endpoint returning no data - only shows app users

I’m having trouble retrieving my friends list using Facebook Graph API version 2.0 and later. The response comes back completely empty:

{
  "data": [
  ]
}

This worked perfectly fine in v1.0 using this Objective-C code:

FBRequest* contactsRequest = [FBRequest requestForGraphPath:@"me/friends"];
[contactsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,
                                              NSDictionary* response,
                                              NSError *error) {
    NSArray* contacts = [response objectForKey:@"data"];
    NSLog(@"Total contacts found: %i", contacts.count);
    for (NSDictionary<FBGraphUser>* contact in contacts) {
        NSLog(@"Contact name: %@ with ID: %@", contact.name, contact.id);
    }
}];

Now with the newer API version, I’m getting zero results. Has something changed in how friend data is accessed? Do I need different permissions or is there a new way to fetch this information?

Yeah, that’s how Facebook’s API v2.0+ works now. They locked down friends data for privacy reasons. The /me/friends endpoint only shows friends who’ve also authorized your app - not everyone like the old v1.0 days. There’s /me/taggable_friends if you need broader access, but it’s mainly for tagging people in posts and stories. Still need the user_friends permission, but it’s way more limited now. Most devs had to completely rework their social features when this hit. You’ll probably need to try different approaches - maybe let users manually invite friends or build other social discovery features into your app.

This change certainly caught many developers off guard when Facebook updated their API. They significantly restricted access to friends’ data, which means you won’t have access to everyone’s friend list anymore. Now, with the user_friends permission, you can only see friends who have also authorized your app. I faced similar issues in 2014, and it required a complete overhaul of our social features. While the /me/taggable_friends endpoint exists, its limitations often lead developers to create their own social structures or rely on alternative contact methods.

Yeah, they locked down everything after v2.0 - huge change for developers. Your code looks good, but with the friends permissions update, you can only see users who also have your app installed. Really kills broader social features!