OAuthException: этот код авторизации был использован – Facebook

Похоже, новый выпуск Facebook от 5 декабря вызывает у меня некоторые проблемы. Кто-нибудь еще получает эту ошибку?

Koala::Facebook::APIError (OAuthException: этот код авторизации был использован.)

Я могу использовать oauth, но когда я звоню, делаю следующее... Я получаю сообщение об ошибке. то есть ниже:

@friends = graph.get_object("/me/friends")

Вот обновление Facebook:

Новые ограничения безопасности для кодов авторизации OAuth Мы разрешим обмен кодов авторизации на токены доступа только один раз и потребуем, чтобы они были обменены на токен доступа в течение 10 минут после их создания. Это соответствует спецификации OAuth 2.0, в которой с самого начала указано, что «коды авторизации ДОЛЖНЫ быть недолговечными и одноразовыми». Для получения дополнительной информации ознакомьтесь с нашей документацией по аутентификации.

Если бы кто-нибудь мог помочь или даже уточнить, что означает обновление Facebook, это было бы очень полезно. Я получаю это, используя Rails Koala Gem.

Кажется, здесь сообщается, но ответы не помогли.

http://developers.facebook.com/bugs/121266004701942?browse=search_50c113068fae60719a>55


person user749798    schedule 06.12.2012    source источник
comment
видел эту ошибку на многих форумах, но решения нет. ой!   -  person user749798    schedule 07.12.2012
comment
Когда вы делаете me = graph.get_object "me" или feed = graph.get_connections "me", :feed, вы также получаете ошибку?   -  person Малъ Скрылевъ    schedule 23.11.2013


Ответы (2)


Это их разочаровывающее изменение - в основном вам нужно кэшировать сеанс каждый раз, когда вы загружаете 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?

К сожалению, иногда это все еще будет вызывать ошибки, потому что это будет действительно старый код из сеанса с истекшим сроком действия. Я заключаю его в блок begin/recovery и прошу пользователя щелкнуть, чтобы снова вернуться к oauth (который получит новый токен), или попробовать войти без facebook/etc.

person Kevin    schedule 06.08.2013

Вы вставили гем omniauth_facebook? Поместите следующий код в файл initializers/omniauth.rb.

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