2012-02-06 10 views
5

नहीं ढूंढ सकता है, मैं रेल और Omniauth के लिए नया हूं, इसलिए गूंगा प्रश्न के लिए पहले से खेद है।Omniauth के लिए एक नई रणनीति तैयार करना, लेकिन Omniauth इसे

मैं डीज़र वेबसाइट के लिए एक Omniauth रणनीति करने की कोशिश कर रहा हूं। http://www.deezer.com/en/developers/simpleapi/oauth

सबसे पहले, मैंने फेसबुक रणनीति का परीक्षण करने के लिए एक मूल रेल आवेदन स्थापित किया। यहां मेरा कोड गीथब में है: https://github.com/geoffroymontel/omniauth-test

और यह ठीक काम करता है। अच्छा।

तब मैं अपने एप्लिकेशन lib निर्देशिका

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

में उन फ़ाइलों को जोड़ा गया है और

config/initializers/omniauth.rb 

में

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

जोड़ा लेकिन जब मैं

rails s 
के साथ एप्लिकेशन शुरू

मैं निम्न त्रुटि संदेश मिलता है

/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' 

आपकी मदद के लिए धन्यवाद

बेस्ट

Geoffroy

+2

मैं जोड़ा 'omniauth-Deezer' की आवश्यकता होती है में initializers/omniauth.rb और यह काम किया। अब मुझे समझ में नहीं आता कि मुझे इसकी आवश्यकता क्यों है और फेसबुक नहीं है ... – geoffroy

उत्तर

2

Upgrading to 1.0 दस्तावेज़ में यह उल्लेख किया गया है कि Omniauth अब हर प्रदाता के लिए एक मणि की जरूरत है , तो आपको अंततः अपने प्रदाता को एक मणि में ले जाना होगा।

+0

धन्यवाद! मैं अपनी रणनीति को जीईएम के बाहर डीबग करने की कोशिश कर रहा था, अन्यथा यह डीबग करने के लिए थोड़ा दर्दनाक है। – geoffroy

4

मैं में initializers/omniauth.rb

require 'omniauth-deezer' 

जोड़ा गया है और यह काम किया।

मुझे वास्तव में समझ में नहीं आता कि मुझे इसकी आवश्यकता क्यों है और फेसबुक नहीं करता है।

2

भविष्य में संदर्भ के लिए, आप अपने खुद के omniauth रणनीति जोड़ना चाहते हैं, तो आपके gemfile

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

तो आपको gemfiles के स्थानीय भंडार feauture का उपयोग किया जा करने के लिए इस जोड़ें। आधिकारिक बंडलर पृष्ठ में आप देखेंगे कि रिमोट रिपोज़ का उपयोग कैसे करें।

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

संबंधित मुद्दे