我有一個應用程序,用戶可以鏈接他們的Facebook帳戶。他們可以使用他們的電子郵件登錄,但他們可以鏈接他們的Facebook帳戶。Rails - Facebook的Omniauth和考拉:如何更新過期的代幣
在我展示鏈接的社交網絡(Facebook和其他人)的觀點,我有這樣的事情:
<%= image_tag @facebook.get_facebook_picture %>
這將調用一個實例方法是這樣的:
def get_facebook_picture
unless self.token.nil?
facebook_graph = Koala::Facebook::GraphAPI.new(self.token)
fb_picture = facebook_graph.get_picture("me", { :type => "small" })
end
end
這將工作得很好,除非我存儲在我的數據庫中的Facebook標記已過期。所以,我在提到控制器添加了這個異常處理程序:
def facebook_exception_handler exception
if exception.fb_error_type.eql? 'OAuthException'
# Let's get a new auth token... How?
else
logger.debug "Damn it. We don't know what error is coming from FB"
raise exception
end
end
我正確地捕捉到了異常,但我看不出我怎麼會續約,我有我的數據庫中訪問令牌。請注意,我擁有的訪問令牌已經使用OmniAuth插入。所以我的問題是:
鑑於我有一個OAuthException
,如何使用Omniauth更新特定用戶(UID)的訪問令牌?
因爲這不是一個回答你的問題,我就發表評論......但你應該能夠搶沒有使用活動標記的圖片:'profile_pic = Koala :: Facebook :: GraphAPI.new.get_picture(fb_uid,{:type =>「large」})',對吧? – courtsimas 2012-05-08 18:52:54
如果你想得到擴展的60天令牌,[這可能有幫助](http://stackoverflow.com/a/16721737/805003) – manafire 2013-05-23 19:06:22