没有得到电子邮件和公众简介使用Facebook 4.4.0 SDK
我目前正在使用Facebook SDK 4.4.0。 在4.4.0版本之前,在4.3.0版本中,我们使用下面的代码获得了email,public_profile
NSArray *arrFBPermission = [[NSArray alloc]initWithObjects:@"email",@"public_profile", nil]; [loginUsingFB logInWithReadPermissions:arrFBPermission handler:^(FBSDKLoginManagerLoginResult *result, NSError *error){ [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error){ if (!error){ NSString *fnm = [result valueForKey:@"first_name"]; NSString *lnm = [result valueForKey:@"last_name"]; } else{ Nslog("%@", error localizedDescription); } }]; }
现在在新的SDK(即4.4.0),我没有得到这些值。 为什么? 我想从Facebook的电子邮件,名字,姓氏,身份证。
使用Facebook 4.4 SDK有一些细微的变化。 您必须通过Facebook帐户所需的FBSDKGraphRequest
请求参数。
在你的代码中,参数是nil
的:
使用如下参数更新您的代码:
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"id, name, link, first_name, last_name, picture.type(large), email, birthday, bio ,location , friends ,hometown , friendlists"}]
如果你想使用自定义buttonloginFacebook,那么你可以使用完整的代码如下:
- (IBAction)btnFacebookPressed:(id)sender { FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; login.loginBehavior = FBSDKLoginBehaviorBrowser; [login logInWithReadPermissions:@[@"email"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { if (error) { // Process error } else if (result.isCancelled) { // Handle cancellations } else { if ([result.grantedPermissions containsObject:@"email"]) { NSLog(@"result is:%@",result); [self fetchUserInfo]; [login logOut]; // Only If you don't want to save the session for current app } } }]; } -(void)fetchUserInfo { if ([FBSDKAccessToken currentAccessToken]) { NSLog(@"Token is available : %@",[[FBSDKAccessToken currentAccessToken]tokenString]); [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"id, name, link, first_name, last_name, picture.type(large), email"}] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { if (!error) { NSLog(@"resultis:%@",result); } else { NSLog(@"Error %@",error); } }]; } }
我希望它会为你工作。
- 如何获得一个Facebook用户朋友和个人资料图片的朋友使用graphicsapi v2.0?
- 新的iOS SDK 3.0,发布到用户的墙上没有弃用的API
- iOS:Facebooklogin访问令牌错误:由于模拟器错误,从NSUserDefaults回落到加载访问令牌
- Facebook API – 如何取消graphics请求
- 用facebook iOS sdklogin注销问题
- 使用Facebook SDK 3.1支持iOS 5和iOS 6
- 为什么Facebook在iOS中返回friendlist 0? 如何检索FB的朋友列表,并将其存储parsing?
- presentShareDialogWithParams发布到FB墙,但callback处理程序结果说错误
- 更改FBSDKLoginButton的默认标题