我正在尝试在我正在开发的Rails
应用程序上使用oauth-plugin
,但我一直遇到问题。
为了确保我没有犯任何错误,我从头开始使用应用程序(使用Rails 3.0.3)。以下是我遵循的步骤:
rails.test
)编辑其Gemfile
以包含:
gem "oauth-plugin", ">=0.4.0.pre1"
gem "oauth", "0.4.4"
通过运行oauth-consumer
script/rails g oauth_consumer
编辑oauth_consumers.rb
以包含我的Google集成密钥:
:google=>{
:key=>"anonymous",
:secret=>"anonymous",
:scope=>"https://www.google.com/calendar/feeds/",
:options => {
:site => "http://www.google.com",
:request_token_path => "/accounts/OAuthGetRequestToken",
:access_token_path => "/accounts/OAuthGetAccessToken",
:authorize_path=> "/accounts/OAuthAuthorizeToken"
},
}
编辑routes.rb
以添加oauth_consumer
的路由:
resources :oauth_consumers
编辑application_controller.rb
以实施logged_in?
方法,如下所示:
def logged_in?
true
end
现在,当我访问http://localhost:3000/oauth_consumers/google
时,我收到以下错误:
uninitialized constant GoogleToken
有谁知道导致此错误的原因以及如何解决? GoogleToken
是一个应该由oauth-plugin
自动生成的类,所以我不知道为什么我会得到这个未初始化的常量错误。
答案 0 :(得分:3)
除非您将“google”传递给生成器,否则GoogleToken类不会自动生成:
script/rails g oauth_consumer google
或者对于rails 3:
rails g oauth_consumer google
同时检查以确保在用户模型中设置关系,如下所示:
has_one :google, :class_name => "GoogleToken", :dependent => :destroy
答案 1 :(得分:0)
您是否记得在编辑bundle install
后从终端运行Gemfile
?听起来你的Rails应用程序还不知道这些宝石。
答案 2 :(得分:0)
我有同样的问题,我认为解决方案可能是这样的: https://github.com/pelle/oauth-plugin/blob/master/lib/generators/oauth_consumer/USAGE 您需要某种身份验证,例如restful-authentication插件,如果您在oauth_consumers_controller.rb文件中取消注释第27..29行,您将跳转到下一步!