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 に答える