2012-11-14 34 views
0

基本上,我試圖從Facebook抓住用戶的相冊,並與封面照片顯示。考拉Facebook的api電話有時返回500錯誤

在我的用戶控制我有:

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

我遇到了同樣的問題,如果在響應中沒有照片/ 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