やったこととか思ったこと

やったことを忘れないように気が向いたら書きます

Twitter4jでタイムラインを取得する

ScalaでTwitter4jを使ってUserTimeline (特定のユーザーのツイート)を取得したメモ。HomeTimeineとかの他のタイムラインを取得するのもおんなじ感じでいけそう

UserTimelineの取得

import scala.collection.JavaConverters._

val twitter = new TwitterFactory().getInstance()
// ConsumerKey, ConsumerSecretは自分で用意したものを使う
twitter.setOAuthConsumer(ConsumerKey, ConsynerSecret)
// 認証されたAccessTokenをセットする
twitter.setOAuthAccessToken(accessToken)

// userTimelineの取得
twitter.getUserTimeline(accessToken.getUserId).asScala

twitter.getUserTimeline()の帰り値にscala.collection.JavaConverters._asScalaを呼び出すと、Seq[twitter4j.Status]にすることができる。

TwitterFactoryのgetInstance()の引数にはAccessTokenを取ることができるけど、そうするためにはtwitter4j.propertiesファイルにOAuthの認証情報を書いておくことが必要?

Pagingについて

パラメータ 内容
page 何ページ目かについて
count 1ページあたりの件数
since_id 指定したid以降のツイートを取得
max_id 指定したid以前のツイートを取得

自分の指定したいパラメータをとるメソッドがオーバーロードされていなくても、setMaxId(Long)sinceId(Long)メソッドを呼び出すことでパラメータを定義したり上書きすることができる。

まとめ

getUserTimeline()の帰り値のResponseListの扱い方がよくわからなくてハマったのでメモとして残しました。Pagingのパラメータは基本的にpageだけ(1ページの表示数を変えたいならcountも)で良さそうですね

参考