我正在尝试获取所有使用我的应用程序的Facebook好友。这是我的代码:
FBRequest* friendsRequest = [FBRequest requestForMyFriends];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,
NSDictionary* result,
NSError *error) {
NSArray* friends = [result objectForKey:@"data"];
NSLog(@"Found: %i friends", friends.count);
_fbIDsArray = NSMutableArray.array;
for (NSDictionary<FBGraphUser>* friend in friends) {
NSLog(@"I have a friend named %@ with id %@", friend.name, friend.objectID);
[_fbIDsArray addObject:friend.objectID];
}
当我与Facebook测试用户合作时,它会返回朋友,但当我试图用真实帐户查找朋友时,它不会返回。Facebook上的应用程序状态是公开的。我正在使用Facebook SDK 3.20
更新
这对我有效
FBLoginView * loginView = [[FBLoginView alloc] initWithReadPermissions:@[@"public_profile", @"email", @"user_friends"]];
loginView.delegate = self;
NSArray *permissions = @[@"public_profile", @"email", @"user_friends"];
[FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
[[FBRequest requestForMe] startWithCompletionHandler:
^(FBRequestConnection *connection,
NSDictionary<FBGraphUser> *user,
NSError *error)
}];
}];
在最新的Facebook SDK中,您可以获得使用该应用程序的此类朋友的列表。有关更多信息,请参阅以下链接-https://developers.facebook.com/docs/facebook-login/permissions/v2.2#reference-朋友