【发布时间】:2011-08-18 14:24:04
【问题描述】:
我正在开发一个网络应用程序,它可以让用户发布推文和链接,但我似乎无法让 Twitter 和 Omniauth 很好地配合使用。我目前在 Rails 3.0.6 和 Ruby 1.8.7 上运行,使用 Twitter gem 1.4.1 和 Omniauth gem 0.2.5
我可以很好地对用户进行身份验证,但是在发送推文时,我只是得到了错误:
POST https://api.twitter.com/1/statuses/update.json: 401: Incorrect signature
我关注了this tutorial,并将我的消费者密钥和消费者密码放在了我的 Omniauth 初始化程序的 Twitter 配置块中,但没有放置 oauth 令牌或 oauth 密码,因为这些肯定会在每个用户的基础上使用。
omniauth.rb
Twitter.configure do |config|
config.consumer_key = "XXXXXXXXXXXXXXXXXXXXXX"
config.consumer_secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
end
user.rb
def twitter
unless @twitter_user
provider = self.authentications.find_by_provider('twitter')
@twitter_user = Twitter::Client.new(:oauth_token => provider.token, :oauth_token_secret => provider.secret) rescue nil
end
@twitter_user
end
然后我使用:
current_user.twitter.update("Hello World!")
这就是给我 401 错误的原因。
有什么想法吗?谢谢!
【问题讨论】:
标签: ruby-on-rails-3 twitter omniauth