Witam próbuję odzyskać mój e-mail z Facebooka, ponieważ gram na Facebooku ios sdk za pomocą Swift. Platforma IOS to 10, szybka 3 i Xcode 8. Śledziłam samouczki online, ale mając problemy z pobieraniem e-maili.Nie można pobrać wiadomości e-mail z Facebooka za pomocą Swift 3 i ios 10
poniżej jest mój kod:
if FBSDKAccessToken.current() == nil {
print("I got token")
let fbButton = FBSDKLoginButton()
fbButton.readPermissions = ["public_profile", "email", "user_friends"]
view.addSubview(fbButton)
fbButton.center = view.center
fbButton.delegate = self
self.fetchprofile()
}
else {
print("Dont have token")
let loginView : FBSDKLoginButton = FBSDKLoginButton()
self.view.addSubview(loginView)
loginView.center = self.view.center
loginView.readPermissions = ["public_profile", "email", "user_friends"]
loginView.delegate = self
}
func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {
if error != nil {
print(error.localizedDescription)
return
}
print("I'm in")
fetchprofile()
}
func fetchprofile() {
print("Getting profile")
let parameters = ["fields": "email"]
let graphRequest:FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: parameters, httpMethod: "GET")
graphRequest.start(completionHandler: {(connection, result, error) -> Void in
if error != nil {
print("Error retrieving details: \(error?.localizedDescription)")
return
}
guard let result = result as? [String:[AnyObject]], let email = result["email"] else {
return
}
print("Email: \(email)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n")
self.view.backgroundColor = UIColor.red
})
}
w moim pliku appdelegate.swift:
//have both google and facebook signin. Google works but facebook doesn't
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
return GIDSignIn.sharedInstance().handle(url,
sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String,
annotation: options[UIApplicationOpenURLOptionsKey.annotation]) ||
FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String, annotation: options[UIApplicationOpenURLOptionsKey.annotation])
}
jestem w stanie zalogować się i wylogować, ale nie jest w stanie odzyskać wiadomości e-mail.
UPDATE Właściwie kiedy faktycznie przechodzą print (e-mail) Widzę to na konsoli jako opcjonalny oświadczeniu. Mam problemy z wyświetleniem bez opcjonalnego statment
Czy użytkownik przyznać uprawnienie do aplikacji e-mail Czy użytkownik ma zweryfikowanego adresu e-mail – WizKid
@WizKid faktycznie widzę id e-mail, ale jego opcjonalne? Myślę, że mój problem pochodzi z drukowania go.Mam problem z oświadczeniem straży – user3497437
Mam ten sam problem – Carlo