我正在制作一个利用用户的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.为什么这些方法没有检索朋友列表?我该怎么做并将其保存到我的解析后端?
解决方法
自2014年4月起,您只会获得授权您的应用程序的用户,请查看更改日志:
https://developers.facebook.com/docs/apps/changelog
未授权您的应用程序的用户无法知道您是否存储了他们的数据,因此如果您考虑隐私是有意义的.
现在获得所有朋友的唯一方法是使用invitable_friends邀请用户访问您的应用,使用taggable_friends来标记用户.但在你的情况下,没有办法得到所有这些.