显示来自Rails应用程序的Twitter订阅源

我已经能够让用户通过OmniAuth登录Twitter(我遵循Railscast#235-6并制作了一个简单的应用程序)。 现在我正在尝试显示登录用户的Twitter提要。 谁能告诉我这是怎么做到的? 我如何初始化Twitter? 如何传入登录用户的用户名和密码? 我是Rails的新手,所以如果我确切地知道放置代码的位置会很有帮助。 谢谢

首先,如果公开,您不需要用户凭据来获取Twitter Feed。 看看Twitter的gem 。 安装gem之后,您需要做的就是:

require 'twitter' Twitter.user_timeline("icambron") 

在IRB中试一试即可开始使用。 很简单吧?

现在,您可能希望使用API​​密钥,因为Twitter会限制匿名请求,而且共享服务器可能会出现问题。 在初始化程序中执行此操作:

 Twitter.configure do |config| config.consumer_key = YOUR_CONSUMER_KEY config.consumer_secret = YOUR_CONSUMER_SECRET config.oauth_token = YOUR_OAUTH_TOKEN config.oauth_token_secret = YOUR_OAUTH_TOKEN_SECRET end 

从Twitter开发者页面获取实际值。

最后,为了得到真正的想象,如果你想扩大规模,你可以使用从OmniAuth获得的OAuth凭证代表用户提出请求(不是他们的用户名和密码;你没有那些)。 这将允许您每秒发出更多请求,因为它们来自不同的用户。 只需使用consumer_keyconsumer_secret字段初始化Twitter,将其设置为您从OmniAuth哈希中获得的内容(请参阅此处 ,查看“凭据”下的内容,了解如何从OmniAuth获取它们)。

class级推文

  BASE_URL = "http://api.twitter.com/1.1/statuses/user_timeline.json" SCREEN_NAME = "OMGFacts" MAX_TWEETS = 10000 CONSUMER_KEY = "PMiAyrY5cASMnmbd1tg" CONSUMER_SECRET = "0TYRYg0hrWBsr1YZrEJvS5txfA9O9aWhkEqcRaVtoA" class << self def base_url BASE_URL end def screen_name SCREEN_NAME end def url(count = MAX_TWEETS) params = {:screen_name => screen_name, :count => count} [base_url, params.to_param].join('?') end def prepare_access_token(oauth_token, oauth_token_secret) consumer = OAuth::Consumer.new(CONSUMER_KEY, CONSUMER_SECRET, { :site => "http://api.twitter.com", :scheme => :header, }) # now create the access token object from passed values token_hash = { :oauth_token => oauth_token, :oauth_token_secret => oauth_token_secret, :open_timeout => 500000000 } access_token = OAuth::AccessToken.from_hash(consumer, token_hash ) return access_token end def get(count = MAX_TWEETS) count = Preference.get(:2000).to_i access_token = prepare_access_token("178394859-cJlRaiQvqVusPAPjqC2Nn7r3Uc7wWsGua7sGHzs","3T8LCZTYXzuPLGzmWX1yRnKs1JFpfJLKemoo59Piyl8") response = JSON.parse access_token.request(:get, url).body response[0...count] end end end