home_timelineを使って20個以上のツイートを取得する。
home_timelineでは800個のツイートを取得できるようです。
まずはhome_timelineにcountという引数を指定して200個
のツイートを取得、その後にmax_idを使用して800個取得してみます。
#!/usr/bin/env ruby -Ku
require ‘rubygems’ # ←Ruby 1.9では不要
require ‘twitter’
require ‘pp’
# ログイン
Twitter.configure do |config|
config.consumer_key = ”
config.consumer_secret = ”
config.oauth_token = ”
config.oauth_token_secret = ”
end
#自分のタイムラインを取得
timeline =Twitter.home_timeline(:count => 200)
timeline.each{ |status|
str = “(#{status[:id]}) #{status[:user][:name]} (#{status[:created_at]})”
puts str
}
home_timelineメソッドの引数に「:count => 200」と指定するだけで
約200個のツイートが取得できます。
timeline.each{}の部分は配列からデータを取り出すための方法です。Rubyの入門書で
配列やイテレータで調べると具体的な使い方が載っています。
次に引数countとmax_idを使って約800個のツイートを取得します。
max_idにはツイートに付与されているidの数字を使います。指定された
idよりも古い(数字の小さい)ツイートが取得できるようになります。
#タイムラインを取得
maxid = 0
timeline =Twitter.home_timeline(:count => 200)
timeline.each{ |status|
str = “(#{status[:id]}) #{status[:user][:name]} (#{status[:created_at]})”
puts str
maxid = status[:id] – 1
}
puts “********************************************”
3.times{
timeline =Twitter.home_timeline(:count => 200,:max_id => maxid)
timeline.each{ |status|
str = “(#{status[:id]}) #{status[:user][:name]} (#{status[:created_at]})”
puts str
maxid = status[:id] – 1
}
}
まずmaxid = 0で変数宣言してます。
引数max_idは指定されたidを含むより小さいidのツイートを取得するので、
timeline.each{}の中のmaxid = status[:id] – 1で
取得した約200個のツイートの最後のツイートidから−1を引いた数字を
maxidに指定してます。
より正確にツイートを取得するにはsince_idを併用するみたいです。
参考
https://dev.twitter.com/docs/api/1.1/get/statuses/home_timeline
https://dev.twitter.com/docs/working-with-timelines
最近のコメント