<目次>
(1) TwitterAPIを使ってフォロワーの一覧を取得する方法(Twitter4jライブラリ)
(1-1) 構文
(1-2) サンプルプログラム
(1) TwitterAPIを使ってフォロワーの一覧を取得する方法(Twitter4jライブラリ)
TwitterAPIのライブラリ(Twitter4j)を用いて、指定したユーザのフォロワーの一覧を取得する方法と、そのサンプルプログラムをご紹介します。
(1-1) 構文
①フォロワー一覧の取得
指定したユーザID(@XXXの@以降の部分)のフォロワー一覧を取得するには、Twitterクラスの「getFollowerIDs」メソッドを使います。このメソッドの戻り値の型は「IDs」ですが、更にこのIDsクラスの「getIDs」メソッドを使う事で、フォロワーのID一覧を保持した配列(long[]型)を取得できます。
(構文)
IDs followerIDs = [Twitterクラスのインスタンス].getFollowersIDs([フォロワーを出したい対象ユーザID], -1); long[] ids = followerIDs.getIDs();
②各フォロワーの基本データ取得
for(long id : ids) {
//# フォロワーの情報を取得
User follower = twitter.showUser(id);
//# [何かの処理(各フォロワーの名前を出力するなど)]
}
(表)
| クラス名 | メソッド名 | 戻り値の型 | 概要 |
| getFollowersIDs | IDs | 指定のユーザの全フォロワーIDを含む「IDs」オブジェクトを返却します。内部的には以下のAPIコールしており、以下のリソースURLを呼んでいます。 https://api.twitter.com/1.1/followers/ids.json メソッドも異なる引数のものが複数用意されていますが、今回使用したメソッドの引数は以下です。 第1引数:検索対象のユーザ名(フォロワーの一覧を出したいユーザ名) |
|
| IDs | getIDs | long[] | フォロワーのID一覧をlong型の配列で返却するためのメソッドです。 |
| showUser | User | 指定のユーザに関する各種データを保持したUserクラスのインスタンスを返却します。具体的には下記のような情報を保持しています。 (例) ・ユーザーID ・ユーザー名 ・フォロワー数 ・いいね数 ・プロフィール情報 など他多数 |
(1-2) サンプルプログラム
(サンプルプログラム)
import twitter.CommonUtil;
import twitter4j.*;
import twitter4j.conf.ConfigurationBuilder;
//# 引数(args[0])にフォロワーを出したい対象の「ユーザーID」を与えて下さい
public final class GetFollowerTest {
public static void main(String[] args) {
//#### 【事前準備】API利用の設定を行うためのConfigurationBuilderインスタンス生成
ConfigurationBuilder cb = new ConfigurationBuilder();
//# キー情報の設定
CommonUtil cu = new CommonUtil();
cb.setDebugEnabled(true)
.setOAuthConsumerKey(cu.ConsumerKey)
.setOAuthConsumerSecret(cu.ConsumerSecret)
.setOAuthAccessToken(cu.AccessToken)
.setOAuthAccessTokenSecret(cu.AccessTokenSecret);
//# 引数が未設定の場合はエラーにする
if (args.length < 1) {
System.out.println("Please give an argument [Twitter User Id]");
System.exit(-1);
}
try {
//#### 【事前準備】各種Twitterインスタンスの生成
//# ファクトリクラスのインスタンス生成
TwitterFactory tf = new TwitterFactory(cb.build());
//# Twitterクラスのインスタンス生成
Twitter twitter = tf.getInstance();
//#### ①ユーザ情報の取得
//# (フォロワーの一覧を出したい対象のユーザ情報)
User user = twitter.showUser(args[0]);
int counter=1;
System.out.println("#### 処理開始 ####");
//# ②ユーザ情報が取得できた場合
if (user.getStatus() != null) {
//# ③フォロワーの一覧を取得
//# 検索対象のユーザのフォロワーのID一覧を取得
IDs followerIDs = twitter.getFollowersIDs(user.getScreenName(), -1);
long[] ids = followerIDs.getIDs();
//# 各フォロワーを1人ずつループ
for(long id : ids) {
//# フォロワーの情報を取得
User follower = twitter.showUser(id);
//# フォロワーの情報を表示
System.out.printf("No.%-6s ID:%-30s ScreenID:@%-15s フォロワー数:%6s 名前:%-40s\r\n",counter,follower.getId(),follower.getScreenName(),follower.getFollowersCount(),follower.getName());
counter++;
}
} else {
//# ④ユーザ名のみ出力
//# →指定したユーザは非公開のため、フォロワー取得不可(ユーザ名のみ表示)
System.out.println("====["+user.getScreenName()+"]は非公開のため、フォロワーは取得できません");
}
System.out.println("#### 処理完了 ####");
System.exit(0);
} catch (TwitterException te) {
te.printStackTrace();
System.out.println("#### フォロワーの一覧出力に失敗しました: " + te.getMessage());
System.exit(-1);
}
}
}
class CommonUtil {
String ConsumerKey = "[ご自身のConsumerKey]";
String ConsumerSecret = "[ご自身のConsumerSecret]";
String AccessToken = "[ご自身のAccessToken]";
String AccessTokenSecret = "[ご自身のAccessTokenSecret]";
}
(図121)

(図122)実行結果
