2016-07-13 13 views
0

Ich frage mich nur, was ich falsch mache mit dem Code unten, der Code innerhalb des Blocks facebookLogin.login (withReadPermissions :) wird nie aufgerufen.iOS Facebook Login Button mit swift

@IBAction func fbBtnPressed(sender: UIButton!) { 
    let facebookLogin = FBSDKLoginManager() 

    facebookLogin.logIn(withReadPermissions: [ "email" ], from: self) { (facebookResult: FBSDKLoginManagerLoginResult?, facebookError:NSError?) in 

     if facebookError != nil { 
      print("Facebook login failed. Error \(facebookError)") 
     } else { 
      let accessToken = FBSDKAccessToken.current().tokenString 
      print("Successfully logged in with facebook. \(accessToken)") 
     } 
    } 

enter image description here

enter image description here

+0

ist die Verbindung mit dem Knopf richtig? Ruft die Button-Funktion überhaupt auf? –

+0

Ja, die Schaltfläche func wird aufgerufen. – amir

Antwort

0

Es ist möglich, dass facebookLogin freigegeben wird, wenn es am Ende des Funktionsaufrufs den Gültigkeitsbereich verlässt, bevor es an der Zeit zu vollenden hatte.

Versuchen bewegen let facebookLogin = FBSDKLoginManager() in die enthalten (Klasse) Umfang:

let facebookLogin = FBSDKLoginManager() 

@IBAction func fbBtnPressed(sender: UIButton!) { 

    facebookLogin.logIn(withReadPermissions: [ "email" ], from: self) { (facebookResult: FBSDKLoginManagerLoginResult?, facebookError:NSError?) in 

     // ...  
    } 
} 
+0

Danke für die Antwort, funktioniert immer noch nicht. – amir

0

Sind Sie sicher, dass das Token existiert, wenn Sie für die Erlaubnis fragen? Wie in Facebook Login SDK angegeben,

sollten Sie die Verfügbarkeit eines vorhandenen Token überprüfen, bevor Sie die Loginmanager aufrufen.

sonst würden Sie brauchen, um mit self.facebookLogInButton.readPermissions = ["email"] die Erlaubnis, Ihre Login-Taste, um wie bei der Genehmigung Seite angegeben I verknüpft