【发布时间】:2010-12-10 00:29:49
【问题描述】:
你好
我正在尝试获取 Facebook 用户的专辑封面图片。
正如 API 页面中所说,它在获取时返回“带有专辑封面图片 URL 的 HTTP 302”:
http s://graph.facebook.com/[album_id]}/picture?access_token=blahblahblah...
文件在这里:http://developers.facebook.com/docs/reference/api/album
我已经尝试过 HTTParty、Net:HTTP 以及 RedirectFollower 类
HTTParty 返回图片图像本身,并且在任何地方都没有“位置”(URL)信息
NET:HTTP 和 RedirectFollower 有点棘手...
如果我在将 URL 传递给 get 方法时不使用 URI.encode,则会导致“bad uri”错误
但是如果我使用 URI.encode 来传递编码的 URI,它会导致 EOFError(到达文件末尾)
令人惊奇的是,我在使用 apigee 的 FB API 时可以看到位置 URL
这里是网络推荐的重定向方法:HTTP 文档:
有什么需要修改的吗?或者有没有更简单的方法来做到这一点?
谢谢!!
def self.fetch(uri_str, limit = 10)
response = Net::HTTP.get_response(URI.parse(uri_str))
case response
when Net::HTTPSuccess then response
when Net::HTTPRedirection then fetch(response['location'], limit - 1)
else
response.error!
end
end
【问题讨论】:
标签: ruby-on-rails redirect httparty