使用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配置文件图像?
答案 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)
。