我提供了一个“与Twitter登录”链接/auth/twitter
,其中omniauth
宝石处理。Omniauth,Twitter的401未经授权
在我的开发机器上,这似乎工作正常,重定向到twitter登录页面并返回dev.twitter.com上应用程序的回调集(http://127.0.0.1:3000/auth/twitter /回电话)。
我对我们的测试生产服务器注册一个单独的应用程序,唯一的东西是不同的访问令牌,密,和回调。访问对生产服务器的结果/auth/twitter
路径
OAuth::Unauthorized (401 Unauthorized):
oauth (0.4.6) lib/oauth/consumer.rb:216:in `token_request'
oauth (0.4.6) lib/oauth/consumer.rb:136:in `get_request_token'
...
我已确认该服务器确实是使用我开发的关键/秘密通过打印使用的日志的人,因为他们在/config/initializers/omniauth.rb
被设置。它们与Twitter页面上给出的匹配,并且注册的回调是有效地址并指向生产服务器。
怎么可能是错在这里?这可能是速率限制的结果吗?
的Gemfile如下:
source 'https://rubygems.org'
gem 'rails', '3.2.3'
gem 'mysql2','0.3.11'
gem 'tweetstream'
gem 'koala'
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'twitter-bootstrap-rails'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
gem 'twitter'
gem 'omniauth-twitter'
gem 'omniauth-facebook'
gem 'thin'
/config/initializers/omniauth.rb:
puts "initializing twitter with #{TWITTER_KEY}, #{TWITTER_SECRET}"
Rails.application.config.middleware.use OmniAuth::Builder do
provider :twitter, TWITTER_KEY, TWITTER_SECRET
provider :facebook, FACEBOOK_KEY, FACEBOOK_SECRET,
:scope => 'read_stream,publish_stream'
end
服务器日志放在这里的第一行正确的密钥和秘密。
你有不同的环境的Twitter密钥/秘密吗? –
是的。我用Twitter注册了他们两个,一个接一个,但所有选项都是相同的,除了回调地址。 – bdares