0

基本上,我试图从 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 小时。

我无法弄清楚为什么某些用户会出现此错误,因为它在大多数情况下都可以正常工作?任何改进此代码的想法或建议将不胜感激。谢谢。

4

1 回答 1

0

我遇到了同样的问题,如果响应中没有照片/封面照片,似乎会发生这种情况。

, 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
于 2013-05-23T11:49:20.390 回答