我在这里看到类似的问题,但似乎没有解决我的问题。iOS Facebook SDK:FBSDKGraphRequest不返回电子邮件(Swift)
我目前正在创建一个使用Facebook SDK登录并返回用户信息的iOS应用程序。
我已成功登录Facebook并接收请求的信息。但是,尽管允许电子邮件的读取权限,但请求并未返回电子邮件。
/********************
Place Facebook login button
*********************/
let loginButton = FBSDKLoginButton()
view.addSubview(loginButton)
loginButton.delegate = self
loginButton.readPermissions = ["email", "public_profile"]
//add button constraints
loginButton.center = view.center
}
/**
* Functions called when user handed back from facebook login
**/
func loginButtonDidLogOut(_ loginButton: FBSDKLoginButton!) {
print("Did log out of facebook")
}
/**
* Functions called when user handed back from facebook login
**/
func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {
if error != nil {
print(error)
} else
{
print("Successfully logged in with facebook")
FBSDKGraphRequest(graphPath: "/me", parameters: ["fields": "id, name, email"]).start
{ (connection, result, err) in
if err != nil{
print("Failed to start graph request: ", err)
return
}
print(result)
}
}
}
电子邮件仅返回并验证它已经。此外,即使用户授予了权限,在隐私设置使其不会返回电子邮件的情况下也存在一些罕见的情况。如果你的应用程序绝对需要一封电子邮件,那么你应该实施一个额外的步骤,让用户手动输入它(当然,验证也成为你的责任)...并非每个用户甚至都有一个电子邮件存档在Facebook上,例如,如果他们只使用他们的手机注册。 – CBroe