iOS登录与Facebook不返回电子邮件甚至参数和权限给出
Posted
技术标签:
【中文标题】iOS登录与Facebook不返回电子邮件甚至参数和权限给出【英文标题】:iOS login with facebook not returning email even parameter and permission given 【发布时间】:2016-04-27 09:48:08 【问题描述】:我已阅读有关此问题的所有有关 *** 的帖子,但没有任何效果。
我尝试使用 facebook 登录,它工作正常,但没有返回电子邮件地址。
这是我的 FBSDKGraphRequest 代码
let request = FBSDKGraphRequest(graphpath:"me", parameters: ["fields":"email,first_name,gender"]);
request.startWithCompletionHandler (connection : FBSDKGraphRequestConnection!, result : AnyObject!, error : NSError!) -> Void in
if error == nil
print("The information requested is : \(result)")
else
print("Error getting information \(error)");
在控制台中显示
The information requested is :
"first_name" = MyName;
gender = male;
id = 252013518608849;
我的登录按钮代码是
let loginButton: FBSDKLoginButton =
let button = FBSDKLoginButton()
button.readPermissions = ["email"];
return button
()
我在 viewdidload 中添加了这个按钮 view.addSubview(loginButton)
我不知道为什么它没有返回电子邮件。
【问题讨论】:
用户的个人资料中是否有已验证的电子邮件地址? 感谢 CBroe....它现在可以工作了 【参考方案1】:请在下面的代码上写下您想要打开facebook的按钮操作。
let login = FBSDKLoginManager()
login .logInWithReadPermissions(["public_profile", "email", "user_friends","user_birthday","user_friends","user_education_history","user_hometown"], fromViewController: self) (result, error) -> Void in
if !(error == nil)
NSLog("Process error");
else if result.isCancelled
NSLog("Cancelled")
FBSDKLoginManager().logOut()
else
NSLog("Logged in");
let fbloginresult : FBSDKLoginManagerLoginResult = result
if(fbloginresult.grantedPermissions.contains("email"))
self.returnUserData()
//fbLoginManager.logOut()
FBSDKLoginManager().logOut()
它会很好地为你工作。提供你的反馈。快乐的编码。
【讨论】:
我们 self.returnUserData() 是什么? self.returnUserdata() 是编写以下代码的函数名。 let request = FBSDKGraphRequest(graphPath:"me", parameters: ["fields":"email,first_name,gender"]); request.startWithCompletionHandler (connection : FBSDKGraphRequestConnection!, result : AnyObject!, error : NSError!) -> Void in if error == nil print("请求的信息是: (result)") else print("错误获取信息(错误)”); 不,它仍然没有返回电子邮件 ID okkk 现在在写 self.returnUserData 的地方写下这段代码。 if((FBSDKAccessToken.currentAccessToken()) != nil) FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name,birthday,hometown,friends,gender,last_name,picture.type( large), email,cover"]).startWithCompletionHandler( (connection, result, error) -> Void in if (error == nil) print(result) ) 返回生日、名字、朋友、性别、身份证、姓氏、姓名、图片,但不返回电子邮件地址以上是关于iOS登录与Facebook不返回电子邮件甚至参数和权限给出的主要内容,如果未能解决你的问题,请参考以下文章
Facebook 登录在用户个人资料中返回“未定义”字段,并且不返回电子邮件。 MEANJs + Passport-facebook
在 iOS9 和 Swift2 中使用 Parse 登录 Facebook