ios – 没有使用Facebook 4.4.0 SDK获取电子邮件和公开个人资料

ios – 没有使用Facebook 4.4.0 SDK获取电子邮件和公开个人资料,第1张

概述我目前正在开发Facebook SDK 4.4.0.在4.4.0版本之前,在4.3.0中我们收到了带有以下代码的电子邮件public_profile NSArray *arrFBPermission = [[NSArray alloc]initWithObjects:@"email",@"public_profile", nil]; [loginUsingFB logInWithReadP 我目前正在开发Facebook SDK 4.4.0.在4.4.0版本之前,在4.3.0中我们收到了带有以下代码的电子邮件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的电子邮件,first_name,last_name,ID.

解决方法 使用Facebook 4.4 SDK会有轻微的变化.
您必须使用Facebook帐户中的FBSDKGraphRequest请求参数.

在你的代码中,参数中有nil:

使用如下参数更新代码:

[[[FBSDKGraphRequest alloc] initWithGraPHPath:@"me" parameters:@{@"fIElds": @"ID,name,link,picture.type(large),email,birthday,bio,location,frIEnds,hometown,frIEndLists"}]

如果您想使用自定义按钮登录Facebook,那么您可以使用完整代码,如下所示:

- (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,email"}]         startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,NSError *error) {             if (!error)             {                 NSLog(@"resultis:%@",result);             }             else             {                 NSLog(@"Error %@",error);             }         }];    }}

我希望它对你有用.

总结

以上是内存溢出为你收集整理的ios – 没有使用Facebook 4.4.0 SDK获取电子邮件和公开个人资料全部内容,希望文章能够帮你解决ios – 没有使用Facebook 4.4.0 SDK获取电子邮件和公开个人资料所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1005086.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存