2011-01-20 15 views
8

Sto cercando di implementare l'autenticazione di Facebook per un'app con Warden, dopo che l'utente ha autorizzato Facebook e reindirizza alla mia callback dell'app con il token ottengo 400 mentre consumo l'API. La mia strategia warden è questo:"Errore durante la convalida del segreto del client." 404 con Facebook Oauth e ruby ​​

class Facebook < Warden::Strategies::Base 
    def client 
    @client ||= OAuth2::Client.new MyApp::Facebook::AppID, MyApp::Facebook::AppSecret, :site => 'https://graph.facebook.com' 
    end 

    def params 
    @params ||= Rack::Utils.parse_query(request.query_string) 
    end 

    def authorize_url 
    client.web_server.authorize_url :redirect_uri => request.url, :scope => 'email,publish_stream' 
    end 

    def authenticate! 
    throw(:halt, [302, {'Location' => authorize_url}, []]) unless params['code'] 
    facebook = client.web_server.get_access_token params['code'], :redirect_uri => request.url 
    rescue OAuth2::HTTPError => e 
    puts e.response.body 
    end 
end 

Strategies.add :facebook, Facebook 

Il risultato della stampa del corpo della risposta è questa:

{"error":{"type":"OAuthException","message":"Error validating client secret."}} 

Io sono abbastanza shure l'id app e app segreto sono quelli forniti da FB.

Grazie.

risposta

18

Ho visto quel messaggio di errore molte volte. Qui ci sono le cose che avrei doppio controllo:

  • tuo dominio è lo stesso di quello che avete elencato nel facebook di callback url
  • l'applicazione id è corretta (in realtà stampare questo fuori su una pagina, a volte y
  • il segreto dell'app è corretto
+2

Per me, stava usando il nome della variabile errato dal mio file di configurazione: - / –

Problemi correlati