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も)で良さそうですね