2012-12-06 144 views
8

似乎Facebook在12月5日發佈的新版本對我造成了一些問題。有沒有人得到這個錯誤?OAuthException:此授權碼已被使用 - Facebook

考拉:: 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

看到此錯誤很多論壇,但沒有解決方案。 OY! – user749798

+0

當你做'me = graph.get_object「me」'或'feed = graph.get_connections「me」,:feed'你會得到這個錯誤嗎? –

回答

0

你有沒有插入寶石omniauth_facebook? 將以下代碼放入intializers/omniauth.rb中。

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :facebook, ENV['app_id'], ENV['secret_id'] 
end 
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 /等。

相關問題