在FBSDKGraphRequest中,Facebook页面图片返回空值

6

我正在尝试从Facebook页面中检索图像。我已经获取了页面ID,现在需要使用此ID从页面获取图像。我正在使用以下代码:

let pictureRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: picPath, parameters: ["fields" : "data"], HTTPMethod: "GET")
                            pictureRequest.startWithCompletionHandler({ (connection: FBSDKGraphRequestConnection!, result, error) -> Void in
                                if (error != nil) {
                                    print("picResult: \(result)")
                                } else {
                                    print(error!)
                                }
                            })

我没有收到错误信息,但我的结果为空。picpath看起来像这样:
/110475388978628/picture

我直接从这里复制了代码,但它没有起作用。有什么想法我做错了什么吗?我有访问令牌,因为我能够通过图形请求获取页面ID。

3个回答

2

如果您想在同一请求中获取图片和其他用户信息,可以在一个图形请求中完成所有操作。

let request = FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, email, picture.type(large)"])
request.startWithCompletionHandler({ (connection, result, error) in
    let info = result as! NSDictionary
    if let imageURL = info.valueForKey("picture")?.valueForKey("data")?.valueForKey("url") as? String {
        //Download image from imageURL
    }
})

1
你可以使用Graph API explorer工具来帮助构建图形请求,链接如下: https://developers.facebook.com/tools/explorer 在这种情况下,你需要将图形路径设置为对象ID(即,你的picPath应该只是110475388978628,你的参数应该是[ "fields" : "picture"]
然后,你需要从result["picture"]["data"]["url"]中解析出"url"。

1

没有名为“fields”的参数。请用nil替换["fields" : "data"]。

let pictureRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: picPath, parameters: nil, HTTPMethod: "GET")
                            pictureRequest.startWithCompletionHandler({ (connection: FBSDKGraphRequestConnection!, result, error) -> Void in
                                if (error != nil) {
                                    print("picResult: \(result)")
                                } else {
                                    print(error!)
                                }
                            })

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接