Facebook parse registrarse rápido
He estado luchando para crear una función de inicio de sesión / registro de Facebook de forma rápida. He estado buscando un tutorial, pero no he podido encontrar nada. Así que he estado tratando de hacerlo yo mismo. Parece funcionar, pero ¿por qué no guarda mi nombre de Facebook, género e imagen en la base de datos? ¿Lo está guardando en el simulador pero no cuando estoy usando mi dispositivo ios 8?
Recibo este mensaje de registro "¡El usuario se ha registrado e iniciado sesión a través de Facebook!", y se agrega un nuevo usuario a la clase de análisis, pero no el nombre, la imagen y el género ...
@IBAction func login(sender: UIButton!) {
var permissionArray = ["user_about_me", "user_relationships", "user_birthday", "user_location"]
PFFacebookUtils.initializeFacebook()
PFFacebookUtils.logInWithPermissions(permissionArray, block: { (user: PFUser!, error: NSError!) in
println(user)
if user == nil {
println(error.localizedDescription)
} else {
if user.isNew {
var userQuery = PFUser.query()
userQuery.getObjectInBackgroundWithId(PFUser.currentUser().objectId) {
(userObject: PFObject!, error: NSError!) -> Void in
var fbRequest = FBRequest.requestForMe()
fbRequest.startWithCompletionHandler { (connection: FBRequestConnection!, result:AnyObject!, error: NSError!) in
if error == nil {
//FACEBOOK DATA IN DICTIONARY
var userData = result as NSDictionary
var faceBookId = userData.objectForKey("id") as NSString
var faceBookName = userData.objectForKey("first_name") as NSString
var faceBookMiddle = userData.objectForKey("middle_name") as NSString
var faceBookGender = userData.objectForKey("gender") as NSString
var url:NSURL = NSURL.URLWithString(NSString(format:"https://graph.facebook.com/%@/picture?width=320", faceBookId))
var err: NSError?
var imageData :NSData = NSData.dataWithContentsOfURL(url, options: NSDataReadingOptions.DataReadingMappedIfSafe, error: &err)
var imageFile = PFFile(name: "image.jpg", data: imageData) as PFFile
println(userData)
userObject.setObject(faceBookName, forKey: "name")
userObject.setObject(imageFile, forKey: "file")
userObject.setObject(faceBookGender, forKey: "gender")
userObject.saveInBackground()
var sharedInstance:userSingleton = userSingleton.sharedInstance
sharedInstance.userName = (userObject.objectForKey("name") as NSString)
sharedInstance.userGender = (userObject.objectForKey("gender") as NSString)
(userObject.objectForKey("file") as PFFile).getDataInBackgroundWithBlock {
(theImageData: NSData!, error: NSError!) -> Void in
println(error)
if error == nil {
sharedInstance.userImage = UIImage(data:theImageData)
}
self.performSegueWithIdentifier("LoginSegue", sender: self)
}
}
}
}
println("User signed up and logged in through Facebook!")
} else {
println("User logged in through Facebook!")
}
}
})
}
}