私はここで同様の質問を見ましたが、問題が解決しないようです。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