iOS Facebook SDK 3.1检索返回null的朋友生日
我正在尝试检索facebook朋友的生日数据,但它返回null。 我正在使用此代码:
FBRequest* friendsRequest = [FBRequest requestForMyFriends]; [friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection, NSDictionary* result, NSError *error) { NSArray* friends = [result objectForKey:@"data"]; NSLog(@"Found: %i friends", friends.count); for (NSDictionary* friend in friends) { NSLog(@"I have a friend named %@ - birthday %@", friend.name, friend.birthday); } }];
朋友的名字还可以,但朋友生日或所有非基本朋友数据的数据都返回null。 注意我已经在facebook.com应用页面和openSession方法(登录)中添加了user_birthday和friends_birthday权限:
- (void)openSession { NSArray *permissions = [[NSArray alloc] initWithObjects: @"user_birthday", @"friends_birthday", nil]; [FBSession openActiveSessionWithReadPermissions:permissions allowLoginUI:YES completionHandler: ^(FBSession *session, FBSessionState state, NSError *error) { [self sessionStateChanged:session state:state error:error]; }]; }
需要一些帮助,我已经尝试了一切。
我有同样的问题,我解决这个问题。
-
首先,请确保您拥有正确的权限。
NSArray *permissions = @[@"user_birthday", @"friends_hometown", @"friends_birthday", @"friends_location"]; [FBSession openActiveSessionWithReadPermissions:permissions allowLoginUI:YES completionHandler: .....
-
然后,不要使用requestForMyFriends。 我尝试了几种方式(改变FBRequest和这种事情
-
检查权限并确保它是您需要的权限。
NSLog(@"permissions::%@",FBSession.activeSession.permissions);
-
现在以这种方式生成FBRequest。
FBRequest *friendRequest = [FBRequest requestForGraphPath:@"me/friends?fields=name,picture,birthday,location"]; [ friendRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) { NSArray *data = [result objectForKey:@"data"]; for (FBGraphObject
*friend in data) { NSLog(@"%@:%@", [friend name],[friend birthday]); }}];
我终于得到了这些数据。 我希望它对你有所帮助
在Graph API的v2.0中,您无法获得某人的朋友生日 – 不推荐使用friends_birthday
权限。
在此处阅读有关这些更改的更多信息: https : //developers.facebook.com/docs/apps/changelog