我没有离线访问fb用户 - 我应该在会话中存储好友列表吗? RoR,Devise,Omniauth& FBGraph

时间:2012-04-08 12:51:01

标签: devise omniauth facebook-access-token fb-graph

我通过Facebook在我的应用上验证用户身份。执行此操作时,我获取访问令牌并执行我的验证。但是,在登录后不久,我将向用户显示他们的朋友列表。问题是那时访问令牌已经过期了。

鉴于我正在使用devise,omniauth和fbgraph gems,我该如何执行此操作?

思想:

  • 获取新的访问令牌。我该怎么做呢?我是否必须修改我的omniauth_callbacks_controller?
  • 我应该将朋友列表存储在会话变量中吗?

我的omniauth控制器:

def facebook
  @user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user)
  if @user.persisted?
    flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Facebook"
    sign_in_and_redirect @user, :event => :authentication
  else
    session["devise.facebook_data"] = env["omniauth.auth"]
    redirect_to new_user_registration_url
end

1 个答案:

答案 0 :(得分:0)