【发布时间】:2015-04-12 14:04:01
【问题描述】:
我正在尝试使用以下内容获取用户的电子邮件地址:
fbLoginManager.logInWithReadPermissions(["email", "public_profile"], handler: { (loginResult, error) -> Void in
if error != nil {
//handle error
} else if loginResult.isCancelled {
//handle cancellation
} else {
//Logged in
self.loggedinUser.fbToken = FBSDKAccessToken.currentAccessToken().tokenString
var graphReq = FBSDKGraphRequest(graphPath: "me", parameters: nil).startWithCompletionHandler { (connection, result, error) -> Void in
if let user = result as? NSDictionary {
var email = result.objectForKey("email") as? String
var name = result.objectForKey("name") as? String
self.loggedinUser.email = email ?? nil
self.loggedinUser.fullName = name ?? nil
}
}
}
})
但是在 loginResult 对象中没有发送用户的电子邮件。知道如何解决这个问题吗?
谢谢
【问题讨论】:
-
我可能错了,但请查看 facebook 开发者门户上的应用程序设置 - 可能还有一些权限设置也必须启用
-
我用过 "logInWithReadPermissions(["email", "public_profile"]"... ,但还是收不到用户的邮箱。
-
在弹出的对话窗口中,您是否看到您正在请求电子邮件?即“此应用程序将访问您的公开个人资料和电子邮件”此外,由于所有 Facebook 用户都不需要提供有效的电子邮件地址,因此无法为每个用户返回一个有效的电子邮件地址。根据文档:“个人资料中列出的此人的主要电子邮件地址。如果没有可用的有效电子邮件地址,则不会返回此字段”
-
对于 SDK 4.4.0,请参阅:stackoverflow.com/questions/31314124/…
标签: ios facebook swift facebook-ios-sdk