2012-02-06 12 views
5

Sono nuovo di Rails e di Omniauth, mi dispiace in anticipo per la stupida domanda .Costruire una nuova strategia per Omniauth, ma Omniauth non la trova

Sto provando a fare una strategia Omniauth per il sito Web Deezer. http://www.deezer.com/en/developers/simpleapi/oauth

Per prima cosa, ho impostato un'applicazione di base per verificare la strategia di Facebook. Ecco il mio codice in Github: https://github.com/geoffroymontel/omniauth-test

E funziona correttamente. Buona.

poi ho aggiunto i file nella mia app directory lib

lib/omniauth-deezer.rb 
lib/omniauth/deezer.rb 
lib/omniauth/deezer/version.rb 
lib/omniauth/deezer/strategies/deezer.rb 

e ha aggiunto

provider :deezer, ENV['DEEZER_APP_ID'], 
ENV['DEEZER_APP_SECRET'], :perms => 'basic_access,email' 

in

config/initializers/omniauth.rb 

Ma quando inizio l'applicazione con

rails s 

ottengo il seguente messaggio di errore

/home/geoffroy/.rvm/gems/[email protected]/gems/omniauth-1.0.2/lib/omniauth/builder.rb:33:in `rescue in provider': Could not find matching strategy for :deezer. You may need to install an additional gem (such as omniauth-deezer). (LoadError) from /home/geoffroy/.rvm/gems/[email protected]/gems/omniauth-1.0.2/lib/omniauth/builder.rb:30:in `provider' 

Grazie per il vostro aiuto

Miglior

Geoffroy

+2

ho aggiunto richiedono 'omniauth-Deezer' in inizializzatori/omniauth.rb e ha funzionato. Ora non capisco perché ne ho bisogno e Facebook non lo fa ... – geoffroy

risposta

2

Nel Upgrading to 1.0 documento si dice che Omniauth ha bisogno di un gioiello per ogni fornitore di ora , quindi dovrai spostare il tuo fornitore in una gemma alla fine.

+0

Grazie! Stavo cercando di eseguire il debug della mia strategia al di fuori di un GEM, altrimenti è un po 'complicato eseguire il debug. – geoffroy

4

ho aggiunto

require 'omniauth-deezer' 

in inizializzatori/omniauth.rb e ha funzionato.

Non capisco davvero perché ne ho bisogno e Facebook no.

2

Per riferimento futuro, se si desidera aggiungere la propria strategia omniauth, aggiungere questo al vostro Gemfile

gem 'omniauth-mystrategy', :path => '~/full-path-to-the-omniauth-folder/' 

avrete modo utilizzerà la feauture repository locale dei gemfiles. Nella pagina ufficiale del bundle vedrai anche come usare i repository remoti.

http://gembundler.com/v1.3/gemfile.html