ruby on rails 3 -使用Twitter gem和Omniauth发送tweet



我正在开发一个网络应用程序,可以让用户发布帖子和链接,但我似乎不能让Twitter和Omniauth很好地发挥在一起。我目前在Rails 3.0.6和Ruby 1.8.7上运行,Twitter gem 1.4.1和Omniauth gem 0.2.5

我可以很好地验证用户,但是当我发送tweet时,我只是给出错误:

 POST https://api.twitter.com/1/statuses/update.json: 401: Incorrect signature

我遵循了本教程,并将我的消费者密钥和消费者秘密放在了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错误的原因。

任何想法?谢谢!

用户。Rb代码使用了错误的格式。他们已经改变了很多。你现在需要这样的东西:

require 'twitter'
class TwitterToken < ConsumerToken
  TWITTER_SETTINGS={:site=>"http://api.twitter.com", :request_endpoint => 'http://api.twitter.com',}
  def self.consumer
    @consumer||=OAuth::Consumer.new credentials[:key],credentials[:secret],TWITTER_SETTINGS
  end
  def client
    Twitter.configure do |config|
      config.consumer_key = TwitterToken.consumer.key
      config.consumer_secret = TwitterToken.consumer.secret
      config.oauth_token = token
      config.oauth_token_secret = secret
    end
    @client ||= Twitter::Client.new
  end
end

我在那个版本的OmniAuth中遇到了类似的问题,我回到了0.2.0版本,所有的401都停止了发生。

相关内容

  • 没有找到相关文章

最新更新