2013-11-27 46 views
10

我在使用'twitter'gem的Ruby腳本時出錯。我的劇本是產生誤差的部分是Ruby Twitter API的錯誤

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) 然而,「推特」和「JSON」寶石都在我的Gemfile所以我不知道爲什麼這種方法是未定義。

+0

是什麼版本的寶石你在用嗎? 它在文檔中聲明配置是通過Twitter :: REST :: Client.new方法完成的 – Zippie

+0

在我的Gemfile.lock文件中,它表示'twitter(5.0.0)' – user1893354

+1

請按照以下文檔:https:// github.com/sferik/twitter – Zippie

回答

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's Twitter Gem

+3

如果我想獲得最近4條推文的列表,我該怎麼做?我無法訪問任何控制器中的客戶端,因爲'客戶端'給我一個NameError - 這個文檔讓我很沮喪。他們不顯示任何控制器代碼... – Peege151