似乎Facebook在12月5日的新版本给我带来了一些问题。是否有其他人收到此错误?
Koala :: Facebook :: APIError(OAuthException:此授权码已被使用。)
我能够oauth,但是当我发出呼叫时,执行以下操作......我得到了错误。即以下:
@friends = graph.get_object("/me/friends")
这是Facebook更新:
OAuth授权码的新安全限制我们只允许将授权码交换一次访问令牌,并要求在创建后的10分钟内将其交换为访问令牌。这与OAuth 2.0规范一致,从一开始就说“授权代码必须是短暂的并且一次性使用”。有关更多信息,请查看我们的身份验证文档。
如果有人可以提供帮助,或者甚至更具体地说明Facebook更新的含义,那将非常有帮助。我正在使用Rails考拉宝石。
这里似乎有报道,但没有答案有帮助。
http://developers.facebook.com/bugs/121266004701942?browse=search_50c113068fae60719135553
答案 0 :(得分:0)
您是否已插入gem omniauth_facebook? 将以下代码放在intializers / omniauth.rb。
中Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, ENV['app_id'], ENV['secret_id']
end
答案 1 :(得分:0)
他们的这种令人沮丧的变化 - 基本上你需要在加载get_user_info_from_cookies
的任何时候缓存在会话中 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?
不幸的是,它有时会引发错误,因为它会成为过期会话中的旧代码。我将它包装在一个开始/救援块中,并要求用户点击再次弹回oauth(这将获得一个新的令牌),或尝试登录而不用facebook / etc。