如何使用Graph API iOS从Facebook相册中获取更大的图像?

时间:2016-03-30 02:34:43

标签: ios swift facebook facebook-graph-api

我已尝试过几种方法从Facebook Graph API获取更大的图像,但我还没有成功。

  1. 我真的不知道 参数 是如何工作的。所以你也会解释我吗?
  2. 此外,我需要知道如何抓取更大的图像。 我首先得到了我的专辑,然后是照片ID,然后我获取了专辑的图像。
  3. iPhone 6的最佳照片尺寸是多少?

    let parameters = ["fields": "picture.height(400).width(200)"]
    FBSDKGraphRequest(graphPath: "/{picture-id}", parameters: parametes, HTTPMethod: "GET")
    

4 个答案:

答案 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”包含不同的大小。