2010年3月25日木曜日

Twitter4j の Paging と 1 ページの最大数について

 
Twitter4j を使うと、デスクトップで動くシンプルな twitter クライアントが java で簡単に作れたりする。
いろいろ難しいことをしようとすると難しいのかもしれないが、twitter にポストしたり、timeline 上の status を取得する等、ごく普通の動作なら、本当に短時間でできてしまう。


さて、Twitter4j (現在 2.1.0) で、timeline などを取得する場合、

 String screenName ="xxx";
 String password ="xxx";
 Twitter twitter = new Twitter(screenName, password);

とした後、(User timeline をとりたいなら、)

 List statuses = twitter.getUserTimeline();

ってやってポスト (Status) を取得することが出来る(いろいろ省略)。
この時、デフォルトで取得できる分だけでなく、もっと前のものを取得したい場合には、Paging (最新の JavaDoc) を使って、取得する部分を指定する必要がある (本題)。
この場合、上の getUserTimeline() を、以下のようにする。

 int page = 1;
 int count = 100;
 List statuses = twitter.getUserTimeline(new Paging(page,count));

Twitter の場合、ページごとに分けて取得した方が便利なことも多いため、Paging が導入されていて (?)、1 ページ何件 (上の例では count) としたとき、何ページ目 (page) を取得するか指定して Status を取得する。
ここで、1 ページあたりの status の数 (count) は上限(最大)は 200 になっている(twitter の仕様に関係して)。Count を 200 より上の値にしても特にエラーは出ないということなので、注意が必要かもとのことです。
なので、これを使って、status をとれる分だけ取るには、count を 200 にして page をどんどん上げ取得していけばいいだろう。なお page は 1 (≠0) から開始。
Paging は他の status の取得でも使うので、覚えておくと良さそう。
 

2010年3月21日日曜日

ちょっと blog を。

 
ちょっと blog をつくってみた。
ひとまとまりの記事にしたほうが良いようなことも twitter でつぶやいていたので、いっそのこと blog をつくって書いておこうかと思って。
当面は twitter の log を掲載して、他に何かまとめておいたほうがいいことが見つかったら書こうと思う。