2014-09-29 69 views
1

對Twitter的寶石感到沮喪。Twitter和最近的推文Ruby on Rails

在我的Gemfile我放在

gem 'twitter' 

我創造,我已經放在下面的代碼一個初始化,twitter_credentials.rb文件:

client = Twitter::REST::Client.new do |config| 
    config.consumer_key = 'foo' 
    config.consumer_secret = 'bar' 
    config.access_token = 'foo' 
    config.access_token_secret = 'bar' 
end 

現在我想要訪問的tweet從這些憑據所屬的帳戶開始。我想在應用程序控制器中執行如下操作:

@tweets = client.tweets 

但上面的客戶端導致名稱錯誤。我如何訪問用戶的推文?它曾經是

@tweets = Twitter.user_timeline('user_name') 

但我想這已被刪除。請不要告訴我看看sferiks文檔,因爲我已經看過,對我來說,作爲客戶端是沒有意義的。(任何事情)都會導致NameError

我必須做什麼獲取推文列表? 謝謝。

回答

1

幾個月前我有類似的問題。我相信你有一個範圍問題。我打的電話讓鳴叫在同一模塊中,我創建的客戶端。

module TwitterApi 

    def get_tweets(twittername) 
    client = Twitter::REST::Client.new do |config| 
     config.consumer_key  = ENV['CONSUMER_KEY'] 
     config.consumer_secret  = ENV['CONSUMER_SECRET'] 
     config.access_token  = ENV['ACCESS_TOKEN'] 
     config.access_token_secret = ENV['ACCESS_TOKEN_SECRET'] 
    end 

    tweets = client.user_timeline(twittername) 
    end 
end 

這樣你的Twitter調用返回的鳴叫數組,你不必擔心範圍的問題。在你的控制器中:

class Foo 
    include TwitterApi 

    def bar 
    @tweets = get_tweets('username') 
    end 
end 

這對我有效。我希望它有幫助。