2017-10-02 2 views
0
- @IBAction func BtnFaceBookLogin(_ sender: Any) 
     { 
      let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager() 
      fbLoginManager.logOut() 
      fbLoginManager.logIn(withReadPermissions: ["public_profile", "email"], from: self) { (result, error) -> Void in 
       if (error == nil){ 
        let fbloginresult : FBSDKLoginManagerLoginResult = result! 
        if(fbloginresult.grantedPermissions.contains("email")) 
        { 
         self.getFBUserData() 
        } 
       } 
      } 
     } 

    func getFBUserData() 
     { 
      if((FBSDKAccessToken.current()) != nil) 
      { 
       FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), 
    email"]).start(completionHandler: { (connection, result, error) -> 
    Void in 
        if (error == nil) 
        { 
         print(result!) 

         let socialID1:[String:AnyObject] = result as! [String : AnyObject] 

         let socialID = socialID1["id"] as! String 

         print(socialID) 
        } 
        else 
        { 
         print("Not Dismiss"); 
        } 
       }) 
      } 
     } 

habe ich versucht, diesen Code, aber keine Antwort bekommen, Störung zu erhalten:Haben Sie nicht die FBSDKtoken bekommen

unexpectedly found nil while unwrapping an Optional value

ich nicht die FBSDKtoken bekommen.

+1

In welcher Zeile empfangen Sie den Fehler? – matiastofteby

+0

if (fbloginresult.grantedPermissions.contains ("E-Mail")) – m123

Antwort

1
let loginManager = FBSDKLoginManager() 
     loginManager.logIn(withReadPermissions: ["user_about_me", "email" , "user_birthday","user_hometown"], from: self) { (loginResult, error) in 
      if error != nil 
      { 

      } 
      else 
      { 
       if loginResult?.grantedPermissions == nil 
       { 

        return 
       } 


       if (loginResult?.grantedPermissions.contains("email"))! 
       { 
        if (loginResult?.grantedPermissions.contains("user_birthday"))! 
        { 
         self.getFBUserData() 
        } 

       } 
       }} 

    } 
    func getFBUserData() 
    { 

     FBSDKGraphRequest.init(graphPath: "me?fields=id,name,email,first_name,last_name,cover,picture.type(large),gender,birthday,hometown", parameters: nil).start(completionHandler: { (connection , result , error) in 

      if(error == nil){ 



       DispatchQueue.main.async { 
        let dictionary = result as! NSDictionary 

        print(dictionary) 
        print("Name : \(dictionary.value(forKey: "name")!)") 
        print("FB ID : \(dictionary.value(forKey: "id")!)") 


       } 


      }else{ 

       self.showalert(strMessage: "Somthig Went Wrong..!") 
      } 
     }) 

    } 

In Swift-3 TryThis

+0

, wenn ich fertig klicken Sie darauf geht direkt zurück, wenn loginResult? .grantedPermissions == null { return } – m123

0

versuchen, mit folgendem Code

let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager() 

@IBAction func btnFbSignInAction(_ sender: Any) { 

     fbLoginManager.logOut() 
     fbLoginManager.logIn(withReadPermissions: ["email"], from: self) { (result, error) in 
      if error != nil { 
       // Handle Error 
       NSLog("Process error") 
      } else if (result?.isCancelled)! { 
       // If process is cancel 
       NSLog("Cancelled") 
      } 
      else { 
       // Parameters for Graph Request 
       let parameters = ["fields": "email, name"] 

       FBSDKGraphRequest(graphPath: "me", parameters: parameters).start {(connection, result, error) -> Void in 
        if error != nil { 
         NSLog(error.debugDescription) 
         return 
        } 

        // Result 
        print("Result: \(result)") 

        // Handle vars 
        if let result = result as? [String:String], 
         let email: String = result["email"], 
         let fbId: String = result["id"] { 
         print("Email: \(email)") 
         print("fbID: \(fbId)") 
        } 
       } 
      } 
     } 
    } 
Verwandte Themen