Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Java

TwitterAPIを使ってフォロワーの一覧を取得する方法(Twitter4jライブラリ)

投稿日:2021年4月17日 更新日:

<目次>
(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();

②各フォロワーの基本データ取得

フォロワーのID一覧が取得できたら、後はそれをループしていき、各IDに対してTwitterクラスのshowUserメソッドで各ユーザの基本情報(ユーザ名、フォロワー数、プロフィール等々)
 
(構文)
for(long id : ids) {
	//# フォロワーの情報を取得
	User follower = twitter.showUser(id);
	
	//# [何かの処理(各フォロワーの名前を出力するなど)]
}

(表)

クラス名 メソッド名 戻り値の型 概要
Twitter getFollowersIDs IDs 指定のユーザの全フォロワーIDを含む「IDs」オブジェクトを返却します。内部的には以下のAPIコールしており、以下のリソースURLを呼んでいます。
https://api.twitter.com/1.1/followers/ids.json

メソッドも異なる引数のものが複数用意されていますが、今回使用したメソッドの引数は以下です。

第1引数:検索対象のユーザ名(フォロワーの一覧を出したいユーザ名)
第2引数:ページングを実行する場合は「-1」を指定します。ページングとは最大5000件で分割して処理を返却し、ページ遷移などを可能にするための情報を付与する事です。

IDs getIDs long[] フォロワーのID一覧をlong型の配列で返却するためのメソッドです。
Twitter 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)実行結果

目次にもどる

 

Adsense審査用広告コード


Adsense審査用広告コード


-Java

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Javaでカンマやクォーテーションをエスケープする方法

<目次> (1) Javaでカンマやクォーテーションをエスケープする方法  (1-1) 実現方法・構文  (1-2) サンプルプログラム  (1-3) 参考:カンマとダブルクォーテーション両方のエスケ …

TwitterのAPIライブラリでリツイートした人の一覧を取得する方法

<目次> (1) TwitterのAPIライブラリでリツイートした人の一覧を取得する方法  (1-1) 構文  (1-2) サンプルプログラム (1) TwitterのAPIライブラリでリツイートした …

木構造の探索における計算量の違いや木構造の種類について(B木/二分木/2-3探索木)

<目次> (1) 木構造の探索における計算量の違いや木構造の種類について(B木/二分木/2-3探索木)  (1-1) 木構造について  (1-2) 「B木」構造  (1-3) 「二分木」構造  (1- …

JNDIとは?JDBCとの違いやメリット・デメリットについてもご紹介

<目次> (1) JNDIとは?JDBCとの違いやメリット・デメリットについてもご紹介  (1-1) JDBCとは?  (1-2) JNDIとは?   (1-2-1) 概要   (1-2-2) JND …

JavaScriptのAddEventListenerの用途や使用例について

<目次> (1) JavaScriptのAddEventListenerの用途や使用例について  (1-1) 概要  (1-2) 構文  (1-3) サンプルプログラム (1) JavaScriptの …

  • English (United States)
  • 日本語
Top