Ruby Twitter API出现错误

10

我正在使用 'twitter' gem 编写一个 Ruby 脚本时出现了错误。导致错误的部分是:

require 'twitter'
require 'net/http'
require 'json'

#### Get your twitter keys & secrets:
#### https://dev.twitter.com/docs/auth/tokens-devtwittercom
Twitter.configure do |config|
  config.consumer_key = 'xxxxxxx'
  config.consumer_secret = 'xxxxxxx'
  config.oauth_token = 'xxxxxx'
  config.oauth_token_secret = 'xxxxxxx'
end

错误信息显示 undefined method 'configure' for Twitter:Module (NoMethodError) 然而,我的Gemfile文件中已经包含了'twitter'和'json'两个宝石,所以我不确定为什么该方法会未定义。


你使用的 gem 版本是什么? 文档中指出,配置是通过 Twitter::REST::Client.new 方法完成的。 - Zippie
在我的 Gemfile.lock 文件中,它说 'twitter (5.0.0)'。 - user1893354
1
请遵循此处的文档:https://github.com/sferik/twitter - Zippie
1个回答

17
你正在使用“旧”的方法。从版本5开始,全局配置不再可用。因此,基本上你需要在初始化客户端时传递配置参数。
例如:
client = Twitter::REST::Client.new do |config|
  config.consumer_key        = "YOUR_CONSUMER_KEY"
  config.consumer_secret     = "YOUR_CONSUMER_SECRET"
  config.access_token        = "YOUR_ACCESS_TOKEN"
  config.access_token_secret = "YOUR_ACCESS_SECRET"
end

然后只需使用该客户端执行查询,例如:

client.sample do |tweet|
  puts tweet.text
end

更多信息请参考Sferik的Twitter宝石


3
如果我想获取最近4条推文的列表,我该怎么做?我不能在任何控制器中访问客户端,因为'client'会导致NameError——这份文档让我感到沮丧。他们没有显示任何控制器代码... - Peege151

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接