2015-07-06 9 views
5

Ho bisogno di ottenere i dettagli delle informazioni dell'utente di Facebook quando accedo a un nuovo utente tramite analisi. attualmente sto registrando il nuovo utente qui sotto. non riesco a ottenere i dettagli dell'utente però. Ho visto del codice scritto su obiettivo - c. la maggior parte delle funzioni non funziona piùOttenere i dettagli utente di Facebook con swift e analisi

I sdks di Facebook che sto utilizzando è v4.3.0.

@IBAction func facebookButton(sender: AnyObject) { 

    PFFacebookUtils.logInInBackgroundWithReadPermissions(permissions) { 
     (user: PFUser?, error: NSError?) -> Void in 
     if let user = user { 
      if user.isNew { 
       println("User signed up and logged in through Facebook!") 
      } else { 
       println("User logged in through Facebook!") 
      } 
     } else { 
      println("Uh oh. The user cancelled the Facebook login.") 
     } 
    } 
} 

risposta

8

per ottenere i dettagli utente si deve inviare un FBSDKGraphRequest dopo la richiesta di accesso.

Questo può essere fatto all'interno del blocco if let user = user {...}.

// Create request for user's Facebook data 
    let request = FBSDKGraphRequest(graphPath:"me", parameters:nil) 

    // Send request to Facebook 
    request.startWithCompletionHandler { 

     (connection, result, error) in 

     if error != nil { 
      // Some error checking here 
     } 
     else if let userData = result as? [String:AnyObject] { 

      // Access user data 
      let username = userData["name"] as? String 

      // .... 
     } 
    }    
+0

lavorato come un fascino, grazie –

+0

Salve sto cercando di recuperare e-mail utente utilizzando lasciare username = userData ["nome"] come? Stringa ma sta mostrando nulla. Sto ottenendo il nome utente con successo. – Vakas

+1

L'ho risolto. È necessario disporre di parametri: ["campi": "id, email, nome, first_name, last_name"] – Vakas

0

Per la nuova API di Facebook e la versione del Swift 3.1 si può fare qualcosa di simile:

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

     if(error != nil) { 
      print("Some error occurred."); 
     } else { 
      print(result!) 
     } 
    }) 
} 
Problemi correlati