未初始化的常量Twitter :: OAuth

时间:2011-05-03 09:14:24

标签: ruby-on-rails-3 twitter twitter-gem

我很难让我的应用程序显示我的应用程序的Feed时间轴。到目前为止,我已经使用了oauth-plugin,oauth和twitter gems(对于rails3)来获得授权。这工作得很好。

现在,当我尝试连接时,我正在努力。

我最终得到了一个错误:

uninitialized constant Twitter::OAuth

检查过我没有其他动作叫做推特(如另一篇文章)。但到目前为止,没有运气。

希望有人可以提供帮助!

  • 编辑 -

我忘了提到我正在使用Devise来验证我的用户。试过插入:

require 'twitter'

但仍然没有成功..

- 编辑二 -

在twitter gem git网站上找到一个关于在版本1.0中对此进行折旧的解决方案。

我现在用以下内容替换了twitter_token.rb文件中的代码:

def客户端     除非@client

  @twitter_oauth=Twitter::Client.new(:TwitterToken.consumer.key,:TwitterToken.consumer.secret)
  @twitter_oauth.authorize_from_access(token,secret)
  @client=Twitter::Base.new(@twitter_oauth)
end

哪个摆脱了这个错误,但现在导致了另一个错误:(

undefined method `consumer' for :TwitterToken:Symbol

我也试过这个:

 def client
    unless @client
      @twitter_oauth=Twitter::Client.new(:oauth_token =>'TwitterToken.consumer.key', :oauth_token_secret=>'TwitterToken.consumer.secret')
      @twitter_oauth.authorize_from_access token,secret
      @client=Twitter::Base.new(@twitter_oauth)
    end

出现以下错误:

undefined method `authorize_from_access' for #<Twitter::Client:0x00000102da1530>

有什么想法吗?我疯了!

1 个答案:

答案 0 :(得分:3)

我将在这里回答我自己的问题 - 如果它对一个人有帮助,那么考虑到我失去了三天它是值得的。

使用最新的twitter gem,devise和oauth-plugin。我看到了很多错误。 oauth-plugin网站上最新的twitter_token控制器不起作用,即使它已经为最近的推特宝石更新了..

最后,我删除了整个twitter_token.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

然后您可以使用以下内容更新Twitter:

<%= current_user.twitter_token.client.update("At last it's working!") %>

另外,请确保您使用的是oauth-plugin的rails3分支..