使用 Parse 保存 FB Img

Posted

技术标签:

【中文标题】使用 Parse 保存 FB Img【英文标题】:Saving FB Img with Parse 【发布时间】:2016-09-17 17:49:29 【问题描述】:

我正在尝试保存一些从 Facebook 提取的当前用户信息并将其保存到我的解析数据库中。我已成功保存名称,但保存照片时遇到很多问题。这是我的代码:

 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()
                    )

任何帮助将不胜感激。

【问题讨论】:

如果您只想保存一次图像(用户在 Facebook 中更改图像时不刷新),请按照 JVS 回答。如果您希望每次用户在 Facebook 上更改图像时都会更改图像,您可以将用户 Facebook ID 保存在特定列中,然后在客户端构造获取图像的 URL。 【参考方案1】:

这是我在完成处理程序中的做法:

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()
    

编辑: 我不在我的 graphPath 中使用图像。

【讨论】:

以上是关于使用 Parse 保存 FB Img的主要内容,如果未能解决你的问题,请参考以下文章

使用 Swift 使用 Parse 存储和保存 Facebook 数据

Parse.com 云代码 afterSave() 错误:“未捕获尝试使用指向新的未保存对象的指针保存对象。”

使用 Parse 数组将数据保存到设备

无法快速将视频保存到 Parse

如何使用 Anywall 在 Parse 上拍摄和保存照片? [关闭]

向用户添加数据,然后使用 Parse Cloud Code 保存它们