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

2018年7月
« 4月    
1234567
891011121314
15161718192021
22232425262728
293031  

カテゴリー

広告

現在の住まい、将来はVPSへ引越します。 ロリポップの上位版です。

広告

広告

最近のコメント

    広告

    Railsを動かす予定のVPS。無料キャンペーン中。

    広告