'sqr'atch-note

ちりはつもれど ちりぬるを

Tweet Bot 作成記録その1

個人的なメモとして残す。あまりまとまっていない。

バージョン

ソースコード

タイムラインを取得して表示するだけ

require 'rubygems'
require 'twitter'
require 'pp'

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

puts "Configuration Success!"


#client.update("ついーと")

# Get timeline
myTL = client.home_timeline

myTL.collect do |tweet|
    puts "#{tweet.user.screen_name} : #{tweet.text}"
end

ストリーミングを利用する

tweetstream gem を利用する。公式Github File: README — Documentation for twitter (5.10.0)

require 'rubygems'
require 'tweetstream'
require 'pp'

TweetStream.configure do |config|
      config.consumer_key        = ""
      config.consumer_secret     = ""
      config.oauth_token         = ""
      config.oauth_token_secret  = ""
      config.auth_method = :oauth
end

puts "Configuration Success!"

begin
streamclient = TweetStream::Client.new
streamclient.userstream do |status|
    username = "#{status.user.screen_name}"
    contents = "#{status.text}"
    str = username + ";" + contents
    puts str
end

ストリーミングを利用する場合、スクリプトはえんえん動き続けるので、何らかの終了処理を入れる必要がある。公式ドキュメントには、ツイート数を10件取得したら終わらせるというサンプルがある。

強制的に終わらせるならCtrl+C。

タイムラインを取得する

The Twitter Ruby Gemを利用する。下記の一行で可能。

myTL = client.home_timeline

その他は公式ドキュメント File: README — Documentation for twitter (5.10.0) を参考にする。

オブジェクト

APIでどういうものが得られるのかは下記の公式サイトの記述を参考にする。

Tweets | Twitter Developers

例えば、クライアント名を取得したい場合は

myTL.collect do |tweet|                                                 
    puts "#{tweet.source}"
end

のようにドットに続けて書けば良い。