Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get the list of Facebook friends who have not installed the app?

I'm developing a social networking app. I've integrated Facebook SDK 3.14 in my iOS App. Now, I want to get the list of all my Facebook friends so I can invite those friends who are not using the app and send friend requests to those friends who have already installed the app.

I can get the list of friends who already use my apps using "/me/friends".

[FBRequestConnection startWithGraphPath:@"/me/friends"
                             parameters:nil
                             HTTPMethod:@"GET"
                      completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                          NSLog(@"All == %@", result);
                      }];

It gives friends' Facebook ids (ex. id = 654330727444458) in response so that I can send friend requests to them.

To get the list of all Facebook friends who have not downloaded the app and if I want to invite those, I need to get all friends using "me/taggable_friends" (Please correct me if I'm wrong).

[FBRequestConnection startWithGraphPath:@"/me/taggable_friends"
                             parameters:nil
                             HTTPMethod:@"GET"
                      completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                          NSlog("%@", result);
                      }];

In the taggable_friends response I'm getting friend's id as id = "AaLYBzZzHdzCmlytqyMAjO0OLDZIOs74Urn93ikeRmmTB3vX_Xl81OYUt4XnoWG0BDLuX67umVkheVdDjzyvm0fcqMqu84GgM9JnNHc-1B63eg" which is friend's token id and it's not unique. I couldn't use it instead, have to use Facebook Id of friend to invite them. Unfortunately, I couldn't get it in the taggable friend response.

like image 460
Kirit Modi Avatar asked Jun 30 '14 05:06

Kirit Modi


People also ask

Why can't I see friends list on Facebook?

If you still can't see your friends list, please try the following: Open your Facebook page in a browser. Go to Settings & Privacy -> Settings ⚙️ -> Apps and websites. Choose View and Edit by the game, and make sure Friends list is there.

How can I see my friends list on Facebook app?

To see your lists:From your News Feed, click Friends in the left menu. If you don't see it, click See More. Click Custom Lists, then click a friend list to open.

What happened to my friends list on Facebook app?

Where are looking for your friend list? They are not anymore on the left side bar. You should check in the drop down menu and get your friend list by clicking on "most recent". Try checking any settings or privacy settings that you may had done.


2 Answers

This is only possible on the Facebook API v1 which stops working next April or so. Even now only existing Facebook apps will allow you to use V1 so if you don't have an old enough app you are not able to do this. In V2 you can only get friends who have also signed in to the same app but the user id's are unique to the application to prevent exactly this. I guess Facebook reasons that by doing this is stops people spamming their friends via apps so much :/

As @joelrb says you can create a canvas app for a game and use invitable_friends but FB will vet your "game" so you can't really cheat.

See https://developers.facebook.com/docs/apps/changelog/ for more info.

TLDR; post to wall is all you can do. Tough. Sorry.

like image 50
Martin Avatar answered Sep 22 '22 22:09

Martin


Use the installed field of a user. Like so:

NSMutableArray *notYetUsers = [NSMutableArray array];
FBRequest *fbRequest = [FBRequest requestForGraphPath:@"me/friends?fields=installed"];
[fbRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
    NSAssert(!error, error.localizedDescription);
    NSArray *friends = [(NSDictionary *)result objectForKey:@"data"];
    for (NSDictionary<FBGraphUser> *user in friends) {
        if ([user[@"installed"] isEqual:@(NO)])
            [notYetUsers addObject:user];
    }
}];

notYetUsers would contain all friends who have not installed the app yet.

like image 43
duci9y Avatar answered Sep 23 '22 22:09

duci9y