2012-02-06 50 views
5

我是Rails和Omniauth的新手,很抱歉提前对于愚蠢的 问题。为Omniauth构建一个新的策略,但Omniauth找不到它

我正在尝试为Deezer网站做一个Omniauth策略。 http://www.deezer.com/en/developers/simpleapi/oauth

首先,我设置了一个基本的rails应用程序来测试Facebook的策略。 这是我在Github的代码: https://github.com/geoffroymontel/omniauth-test

它工作正常。好。

然后我说我的应用程序li​​b目录

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' 

感谢您的帮助

最佳

弗鲁瓦

+2

我加 需要 'omniauth-的Deezer' 在初始化/ omniauth.rb 和它的工作。 现在我不明白为什么我需要它和Facebook不,但... – geoffroy 2012-02-06 11:36:54

回答

2

Upgrading to 1.0文档中提到,Omniauth需要为每一个提供商现在创业板,所以你最终必须将你的提供者转移到gem。

+0

谢谢!我试图在GEM之外调试我的策略,否则调试会有点痛苦。 – geoffroy 2012-02-07 14:12:22

4

我在初始化/ omniauth.rb添加

require 'omniauth-deezer' 

和它的工作。

我真的不明白为什么我需要它而Facebook没有。

2

以供将来参考,如果你想添加自己的omniauth策略,将它添加到您的Gemfile

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

You'll可以使用gemfiles的本地仓库feauture。 在官方打包商页面中,您将看到如何使用远程回购。

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