我正在尝试从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!)
}
})
我没有收到错误,但我的结果是null。 picpath看起来像这样:
/110475388978628/picture
我直接从here复制了代码,但它不起作用。我有什么想法我做错了吗?我有访问令牌,因为我能够通过图形请求获取页面ID
答案 0 :(得分: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 :(得分: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!)
}
})
答案 2 :(得分:1)
您可以使用Graph API资源管理器工具来帮助首先构建图形请求:https://developers.facebook.com/tools/explorer
在这种情况下,您会发现您希望图表路径只是对象ID(即,您的picPath
应该只是110475388978628
而且您的参数应该是{{1 }}
然后你要解析" url"超出[ "fields" : "picture"]
。