2016-09-17 1 views
0

Я пытаюсь сохранить часть текущей информации пользователей, извлеченных из Facebook, и сохранить ее в моей базе данных синтаксического анализа. Я успешно сохраняю имя, но у меня много проблем с сохранением фотографии. Вот мой код:Сохранение FB Img с Parse

FBSDKGraphRequest(graphPath: "me", 
         parameters: ["fields": "id, name,friends, first_name, last_name, picture.type(large), email, gender,taggable_friends"]) 
         .startWithCompletionHandler({ (connection, result, error) -> Void in 

        print(String(result["picture"])) 
        PFUser.currentUser()!["name"] = String(result["name"])  

        let imageData = UIImagePNGRepresentation(result["picture"]) 
        let imageFile = PFFile(name:"image.png", data:imageData) 

        PFUser.currentUser()?["imageFile"] = imageFile 
        PFUser.currentUser()?.saveInBackground() 
        }) 

Любая помощь будет оценена.

+0

Если вы хотите сохранить изображение только один раз (не обновляя его, когда пользователь меняет его в Facebook), пожалуйста, следуйте ответам JVS. Если вы хотите, чтобы изображение менялось каждый раз, когда пользователь менял его на Facebook, вы можете сохранить идентификатор пользователя Facebook в определенном столбце, а затем создать URL-адрес для получения изображения на клиенте. –

ответ

0

Это так, как я делал это в моем обработчике завершения:

let userId:String = result.objectForKey("id") as! String 
let facebookProfilePictureUrl = "https://graph.facebook.com/" + userId + "/picture?type=large" 
let url = String(facebookProfilePictureUrl) 

Теперь с URL вы можете сделать следующее:

if let fbpicURL = NSURL(string: facebookProfilePictureUrl) { 

    if let data = NSData(contentsOfURL: fbpicURL) { 

     let imageFile:PFFile = PFFile(data: data)! 


     PFUser.currentUser()?["imageFile"] = imageFile 

     PFUser.currentUser()?.saveInBackground() 
    } 
} 

EDIT: я не используйте изображение в моем графическом элементе.