程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iOS Facebook SDK:尽管已授予权限,登录也不会返回电子邮件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决iOS Facebook SDK:尽管已授予权限,登录也不会返回电子邮件?

开发过程中遇到iOS Facebook SDK:尽管已授予权限,登录也不会返回电子邮件的问题如何解决?下面主要结合日常开发的经验,给出你关于iOS Facebook SDK:尽管已授予权限,登录也不会返回电子邮件的解决方法建议,希望对你解决iOS Facebook SDK:尽管已授予权限,登录也不会返回电子邮件有所启发或帮助;

自Graph-API版本2.4(Pod版本4.4.0)以来,Facebook Graph API打破了其向后兼容性(以默认方式使用时)。

若要解决此问题,您可以使用显式图形版本2.3:

[[FBSDKGraphRequest alloc] initWithGraPHPath:@"me" parameters:nil tokenString:[FBSDKAccesstoken currentAccesstoken].tokenString version:@"v2.3" httpMethod:nil]

在这种情况下,FB确保v2.3至少在两年后可用。 https://developers.facebook.com/docs/graph- apI/OvervIEw:

您可以通过询问您感兴趣的特定字段来使用新的Graph-API(v2.4):

[[FBSDKGraphRequest alloc] initWithGraPHPath:@"me" parameters:@{@"fIElds" : @"email,name"}]

解决方法

我正在尝试通过facebook
sdk获取信息,但到目前为止,我只获得用户的ID和名称,尽管我确定有可用的电子邮件,因为这是我的帐户。我一直在这里看几个答案,但到目前为止,没有一个解决我的问题。我在做什么错,为什么在我请求多个权限时它不返回更多数据?

这是我的代码:

fbLoginManager.logInWithReadPermissions(["public_profile","email","user_friends","user_about_me","user_birthday"],handler: { (result,error) -> Void in
        if ((error) != nil)
        {
            // Process error
            println("There were an error: \(error)")
        }
        else if result.isCancelled {
            // Handle cancellations
            fbLoginManager.logOut()
        }
        else {
            var fbloginresult : FBSDKLoginManagerLoginResult = result
            if(fbloginresult.grantedPermissions.contains("email"))
            {
                println(fbloginresult)
                self.returnUserData()
            }
        }
    })

以及获取用户数据的功能:

func returnUserData()
{
    let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me",parameters: nil)
    graphRequest.startWithCompletionHandler({ (connection,result,error) -> Void in

        if ((error) != nil)
        {
            // Process error
            println("Error: \(error)")
        }
        else
        {
            println("fetched user: \(result)")

            if let userName : NSString = result.valueForKey("name") as? NSString {
                println("User Name is: \(userName)")
            }
            if let userEmail : NSString = result.valueForKey("email") as? NSString {
                println("User Email is: \(userEmail)")
            }
        }
    })
}

哪个返回:

fetched user: {
id = 55555555;
name = "Kali Aney";
}
User Name is: Kali Aney

大佬总结

以上是大佬教程为你收集整理的iOS Facebook SDK:尽管已授予权限,登录也不会返回电子邮件全部内容,希望文章能够帮你解决iOS Facebook SDK:尽管已授予权限,登录也不会返回电子邮件所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: