2011-10-11 77 views
1

目前,我正在開發一個重型Facebook集成項目。用戶通過omniauth登錄,然後使用他們的access_token與fb_graph一起獲取他們的數據。但大約過後。 30分鐘我得到這個錯誤:FBGraph會話到期

OAuthException :: Error validating access token: Session has expired at unix time 1317304800. The current unix time is 1317306973. 

我怎麼可能發現這個錯誤並修復它?它隨機發生,所以我認爲application_controller級別的before_filter是最好的選擇。然後,我想抓住他們正在或正在重定向到的URL,以便我可以將用戶重定向到「/ auth/facebook」,並讓他們返回到他們想要去的網址。

另一種選擇是觀察者?這是否有可能觀察用戶,如果發生此錯誤,趕上並記住current_url或重定向url,然後將用戶重定向到/ auth/facebook以獲取新的access_token。

您認爲什麼是最佳選擇?或者你有更好的解決方案?

謝謝!

回答

1

訪問令牌在「X」時間後過期。您可以要求offline_access權限,然後將其保存在您的數據庫中

+0

哦,這是個好主意!我會盡量使用它! –