twittered

twittered

twittered は Twitter API を利用するための Java 用のライブラリである。Twitter API v2 に対応している。 内部で JSON 用のライブラリである jackson を利用している。

導入

Maven を使っている場合には簡単に導入することができる。

pom.xml に以下のように記述する。

    <dependency>
     <groupId>io.github.redouane59.twitter</groupId>
     <artifactId>twittered</artifactId>
     <version>2.21</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.32</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-simple</artifactId>
      <version>1.7.32</version>
      <scope>test</scope>
    </dependency>

ロギングのライブラリとして slf4j が組み込まれている。 なお、Eclipse 上の Maven では実行時に以下の警告が表示されることがあるが、ログの出力は必要としないので無視してよい。

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

プログラミング

主なクラス・インタフェース

TwitterClient
Twitter とのやり取りをするクラス。 ユーザ認証のほか、API のリクエストに対応するメソッドが用意されている。
User
ユーザのインタフェース。Id、名前、表示名のほか、ツイート数、フォロー数などが取得できる。
AdditionalParameters
リクエストの際のパラメータ。since_id, until_id, start_time, end_time, max_results など。 recursiveCall がデフォルトで true になっており、 1回のリクエストで取得しきれない場合にはリクエストを繰り返して全件取得しようとする。 max_results を指定するときには recursiveCall を false にしておかないと期待する動作にならない。
TweetList
レスポンス。レスポンスの内容として List<TweetV2.TweetData>, TweetMeta, Includes を持つ。
TweetMeta
レスポンスのメタ情報として newest_id, oldest_id, next_token, result_count を持つ。
TweetV2.TweetData
レスポンスに含まれるツイート。text, author_id などを持つ。

公式のサンプルコード

ITwitterClientV2Test
公式の使用例。クラスやメソッドの使い方が確認できる。 なお、assertEquals, assertNotNull といったメソッドはライブラリ JUnit 由来の検証用のもの。

検索

TwitterSearcher.java

特定ユーザのツイートを取得

UserTimelineViewer.java

特定ユーザがフォローするユーザがフォローするユーザの取得

フォロー数が多いと取得しきれないため、maxResults を指定して件数を絞っている。

TwitterFollower.java