Ruby on rails OAutheException:此授权码已被使用-Facebook

Ruby on rails OAutheException:此授权码已被使用-Facebook,ruby-on-rails,facebook-graph-api,koala,koala-gem,Ruby On Rails,Facebook Graph Api,Koala,Koala Gem,Facebook 12月5日的新版本似乎给我带来了一些问题。还有其他人收到这个错误吗 考拉::Facebook::APIRERROR(OAutheException:此授权码已被使用。) 我可以使用oauth,但是当我发出一个调用时,执行以下操作…我会得到错误。i、 e.下文: @friends = graph.get_object("/me/friends") 以下是Facebook的更新: OAuth授权码的新安全限制我们只允许将授权码交换为访问令牌一次,并要求在创建授权码后10分钟内将其

Facebook 12月5日的新版本似乎给我带来了一些问题。还有其他人收到这个错误吗

考拉::Facebook::APIRERROR(OAutheException:此授权码已被使用。)

我可以使用oauth,但是当我发出一个调用时,执行以下操作…我会得到错误。i、 e.下文:

@friends = graph.get_object("/me/friends")
以下是Facebook的更新:

OAuth授权码的新安全限制我们只允许将授权码交换为访问令牌一次,并要求在创建授权码后10分钟内将其交换为访问令牌。这符合OAuth 2.0规范,该规范从一开始就规定“授权代码必须是短期的和一次性的”。有关更多信息,请查看我们的身份验证文档

如果有人能提供帮助,或者更具体地澄清Facebook更新的含义,那将非常有帮助。我用Rails考拉宝石得到这个

这里似乎有报道,但没有任何答案是有用的


您是否在facebook上插入了gem omniauth\u? 将以下代码放入initializers/omniauth.rb中

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, ENV['app_id'], ENV['secret_id']
end

这一令人沮丧的变化,他们-基本上你需要缓存在会话中的任何时候,你加载获取用户信息从饼干

  fb_user = session[:fb_info] || oauth.get_user_info_from_cookies(cookies)
  session[:fb_info] = fb_user
  session[:fb_token] = fb_user['access_token'] # is is the right one?

不幸的是,它有时仍然会引发错误,因为它将是来自过期会话的非常旧的代码。我将其包装在begin/rescue块中,并要求用户再次单击以返回oauth(这将获得一个新令牌),或者尝试在没有facebook/等的情况下登录。

在许多论坛中都看到此错误,但没有解决方案。哎呀!当您执行
me=graph.get_object“me”或
feed=graph.get_connections“me”时:feed
是否也会收到错误?