我很难让我的应用程序显示我的应用程序的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>
有什么想法吗?我疯了!
答案 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分支..