2012-12-06 26 views
8

Wygląda na to, że nowe wydanie Facebooka 5 grudnia powoduje pewne problemy. Czy ktoś inny dostaje ten błąd?OAuthException: Ten kod autoryzacji został użyty - Facebook

Koala :: Facebook :: APIError (OAuthException. Ten kod zezwolenie zostało wykorzystane)

jestem w stanie OAuth, ale kiedy wystawi wezwanie, w następujący sposób ... Ja dostać błąd. czyli poniżej:

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

Tu był Aktualizacja Facebook:

Nowe ograniczenia zabezpieczeń dla kodów autoryzacji OAuth pozwolimy tylko kody autoryzacji być wymieniane za tokeny dostępu raz i będzie wymagać, aby były one wymieniane o token dostępu w ciągu 10 minut od ich utworzenia. Jest to zgodne ze specyfikacją OAuth 2.0, która od początku stwierdziła, że ​​"kody autoryzacyjne MUSZĄ być krótkotrwałe i jednorazowe". Aby uzyskać więcej informacji, zapoznaj się z naszą dokumentacją uwierzytelniania.

Jeśli ktoś mógłby pomóc, a nawet dokładniej wyjaśnić, co oznacza aktualizacja na Facebooku, byłoby to bardzo pomocne. Dostaję to za pomocą Klejnotu Koala Rails.

Wygląda na to, że zostało to zgłoszone tutaj, ale żadne odpowiedzi nie były pomocne.

http://developers.facebook.com/bugs/121266004701942?browse=search_50c113068fae60719135553

+0

widząc ten błąd na wielu forach , ale bez rozwiązania. oy! – user749798

+0

Kiedy robisz 'me = graph.get_object" me "' lub 'feed = graph.get_connections" me ",: feed' pojawia się również błąd? –

Odpowiedz

0

Czy włożona omniauth_facebook gem? Umieść następujący kod w intializers/omniauth.rb.

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

To frustrujące zmiana ich - po prostu trzeba buforować w dowolnym momencie sesji załadować 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? 

To niestety nadal będzie podnosić błędy czasami ponieważ będzie to bardzo stary kod z sesja wygasła. Zawijam go w blok begin/rescue i pytam użytkownika, aby kliknął, aby odskoczyć ponownie do oauth (który otrzyma nowy token) lub spróbować zalogować się bez facebooka/itp.