如何检索Facebook好友列表并将其保存到解析?

时间:2014-11-02 13:55:03

标签: ios facebook facebook-graph-api parse-platform

我正在制作一款利用用户Facebook好友列表的应用。我的解析后端有一个名为fbFriendsList的数组类型列。环顾四周后,到目前为止,我有这个:

//my permission array
NSArray *permissionsArray = @[ @"user_about_me",@"email", @"user_friends"];
//My fb request for friends after verifying that user is logging in the first time    
[FBRequestConnection startForMyFriendsWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                        if (!error) {

                            NSArray *friendObjects = [result objectForKey:@"data"];
                            //fbFriendIds is a Mutable array i have declared
                            fbFriendIds = [NSMutableArray arrayWithCapacity:friendObjects.count];
                            // Create a list of friends' Facebook IDs
                            for (NSDictionary *friendObject in friendObjects) {
                                [fbFriendIds addObject:[friendObject objectForKey:@"id"]];
                            }

                        }
                    }];

通过这样做,我没有在列表中收到任何朋友。所以我尝试了这个:

FBRequest* friendsRequest = [FBRequest requestForMyFriends];
                [friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,
                                                              NSDictionary* result,
                                                              NSError *error) {
                    friends = [result objectForKey:@"data"];
                    NSLog(@"Found: %i friends", friends.count);
                    for (NSDictionary<FBGraphUser>* friend in friends) {
                        NSLog(@"I have a friend named %@ with id %@", friend.name, friend.id);
                    }
                }];

但我仍然没有得到朋友。稍后在函数中我将数组保存为PFUser,如此

user[@"fbFriendsList"] = friends;


 [user saveInBackground];

但这会返回Found: 0。为什么这些方法没有检索朋友列表?我该怎么做并将其保存到我的解析后端?

1 个答案:

答案 0 :(得分:3)

自2014年4月起,您只会获得授权您的应用的用户,请查看更改日志:https://developers.facebook.com/docs/apps/changelog

未授权您的应用的用户无法知道您是否存储了他们的数据,因此,如果您考虑隐私,这是有意义的。

现在吸引所有朋友的唯一方法是使用invitable_friends邀请用户访问您的应用,taggable_friends用于标记用户。但在你的情况下,没有办法得到所有这些。