下载高分辨率的个人资料图片Facebook Graph API

时间:2016-10-14 23:00:43

标签: swift facebook-graph-api

使用Swift 3.0,我可以使用此图形调用函数下载当前用户图像:

https://graph.facebook.com/userId/picture?width=640&height=640

然而,这仅返回200 x 200像素的图像。 有没有办法让图表调用更高的分辨率?

我见过人们使用这样的网址调用图表API: func loadUserImage(fromURL urlString:String?) { if urlString != nil { let imgURL: URL = URL(string: urlString!)! let request: URLRequest = URLRequest(url: imgURL) let session = URLSession.shared let task = session.dataTask(with: request, completionHandler: { (data, response, error) -> Void in if (error == nil && data != nil) { func display_image() { let userImage = UIImage(data: data!) self.userImage.image = userImage } DispatchQueue.main.async(execute: display_image) } }) task.resume() } }

如本帖所述:Facebook Graph Profile Picture Link

但是当我尝试从该网址下载图片时......

{{1}}

没有找到图像。 (我知道这个功能有效,因为它适用于所有其他图像)。当我直接在浏览器中输入链接时,会收到一条JSON错误,说我没有授权。

有没有人有运气这样的图形调用?是否有一些我忽略的语法将返回更高的res配置文件图像?

1 个答案:

答案 0 :(得分:4)

这是我在iPhone 7和300x300上加上尺寸要求200x200的要求。但是我不认为你会得到那些确切大小的图像。它可能会略大一些。

let deviceScale = Int(UIScreen.main.scale)
let width = 100 * deviceScale
let height = 100 * deviceScale
let parameters = ["fields": "first_name, last_name, picture.width(\(width)).height(\(height))"]

总之,请求400x400的param语法为picture.width(400).height(400)