基本上,我正试图从Facebook上抓取用户的相册并用封面照片显示它们。
在我的用户控制器中,我有:
def facebook(token)
@facebook ||= Koala::Facebook::API.new(token)
end
def get_photo_albums
albums = self.facebook.get_connection(uid, "albums")
albums.map { |h| { id: h["id"], name: h["name"], count: h["count"], cover_photo: self.facebook.get_picture(h["cover_photo"]) } }
end
此代码在大多数情况下都能正常运行,但偶尔会出现以下错误:
Koala::Facebook::APIError (HTTP 500: Response body: {"error":{"message":"No node specified","type":"Exception"}}):
app/models/user.rb:79:in `block in albums'
app/models/user.rb:79:in `map'
app/models/user.rb:79:in `albums'
我的应用程序在画布上,每次用户访问应用程序时都会通过解析signed_request来获取新的访问令牌,该应用程序应该持续2个小时。
我无法弄清楚为什么这个错误出现在某些用户身上,因为它在大多数情况下都能正常工作?任何改进此代码的想法或建议都将非常感激。谢谢。
答案 0 :(得分:0)
我遇到了同样的问题,如果响应中没有photo / cover_photo,似乎就会发生。
, cover_photo: fb_cover_photo(h) } }
我使用了这个救援声明:
def fb_cover_photo(photo)
begin
self.facebook.get_picture(photo["cover_photo"])
rescue Exception => e
nil
end
end