【问题标题】:Tweeting using Twitter gem and Omniauth使用 Twitter gem 和 Omniauth 发布推文
【发布时间】: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


    【解决方案1】:

    您的 user.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
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-31
        • 2018-02-07
        • 2013-06-27
        • 2016-06-24
        • 2012-10-27
        • 2012-04-01
        • 2016-07-08
        相关资源
        最近更新 更多