我已尝试过几种方法从Facebook Graph API获取更大的图像,但我还没有成功。
iPhone 6的最佳照片尺寸是多少?
let parameters = ["fields": "picture.height(400).width(200)"]
FBSDKGraphRequest(graphPath: "/{picture-id}", parameters: parametes, HTTPMethod: "GET")
答案 0 :(得分:1)
如果您使用picture?type=large
获得的图片不够大,我建议您尝试使用picture?width=9999
。
代码如下:
let requestPicture = FBSDKGraphRequest(graphPath: "{user_id}/picture?width=9999&redirect=false", parameters: nil, HTTPMethod: "GET")
This SO线程可能对参数有用。
答案 1 :(得分:0)
如果您已拥有用户的ID并且他们已授予适当的权限,您可以执行以下操作:
let imageUrl = NSURL(string: "https://graph.facebook.com/\(userId)/picture?type=large")
if let data = NSData(contentsOfURL: imageUrl!) {
let profilePicture = UIImage(data: data)
}
}
您还可以执行任何枚举值:小型,普通,专辑,大型,方形,如here所述。更好的是,您可以使用AFNetworking在背景中使用占位符图像加载图像,该图像可以处理缓存和一切。有关详细信息,请参阅here,特别是setImageWithURL。
答案 2 :(得分:0)
从登录或向我发出基本图形请求,您可以获得用户ID,并且可以通过该用户ID尝试此操作
您可以尝试这样:
let fbRequest = FBSDKGraphRequest(graphPath:"/{user-id}/picture?redirect=false&type=large", parameters: nil);
fbRequest.startWithCompletionHandler { (connection : FBSDKGraphRequestConnection!, result : AnyObject!, error : NSError!) -> Void in
if error == nil {
print("Result is : \(result)")
/* this will return the data of the image which you can use with imageview with data method {
"data": "ProfilePictureSource",
"paging": {}
}*/
} else {
println("Error Getting Friends \(error)");
}
}
对于您传递的字段picture.height and picture.width
用于指定在回复中返回给您的图像
您可以使用两种类型的尺寸参考:
预定义尺寸:小尺寸,普通尺寸,大尺寸,方形 自定义尺寸:指定所需图像的宽度和高度
有关详情,请查看facebook doc:Facebook doc:User Profile
答案 3 :(得分:0)
您可以使用Graph API来获取不同大小的图像。你需要有图片ID。你这样请求:
<强> / {图像-ID }?字段=宽度,高度,图像强>
由于上面的查询返回JSON数据。在该数据“images”包含不同的大小。