目前我正在开发一个Facebook集成的侧面项目。用户通过omniauth登录,然后我将他们的access_token与fb_graph一起使用来获取他们的数据。但约好了30分钟我收到此错误:
OAuthException :: Error validating access token: Session has expired at unix time 1317304800. The current unix time is 1317306973.
我怎样才能捕获此错误并修复它?它是随机发生的,所以我认为application_controller级别的before_filter是最好的选择。然后我想抓住他们所在的网址或被重定向到的网址,以便我可以将用户重定向到“/ auth / facebook”并让他们返回到他们想要去的网址。
另一种选择是观察者?这是否可以观察用户,如果发生此错误,请抓住并记住current_url或重定向网址,然后将用户重定向到/ auth / facebook以获取新的access_token ..
您认为最佳选择是什么?或者你有更好的解决方案吗?
谢谢!
答案 0 :(得分:1)
访问令牌在“X”时间后到期。您可以请求offline_access权限,然后将其保存在数据库中