Rainbow Engine

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

Java

TwitterのAPIライブラリ(Twitter4j)で「いいね数」や「リツイート数」を取得する方法

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

<目次>

(1) TwitterのAPIライブラリ(Twitter4j)で「いいね数」や「リツイート数」を取得する方法
 (1-1) 構文
 (1-2) サンプルプログラム

(1) TwitterのAPIライブラリ(Twitter4j)で「いいね数」や「リツイート数」を取得する方法

(1-1) 構文

メインとなるメソッドは「getUserTimeLine」メソッドです。

twitter.getUserTimeline([ユーザID], [Paging型インスタンス]);

 

また、使用する主なメソッドは以下の通りです。
(表:主なメソッド)

クラス メソッド 戻り値 説明
Paging Paging Pagingクラスのコンストラクタを使う事で、ページに表示する件数を制御する事ができます。コンストラクタは種類が複数個ありますが、今回使用しているのは以下です。

(構文)
Paging(int page, int count)

(引数)
第一引数「page」:ページ番号
第二引数「count」:ページ単位で表示する件数(上限200?)

各ページに表示できる数には上限があるため、200以上の件数を表示するためには、ページをループしていく必要があります。

Twitter getUserTimeLine ResponseList<Status> 引数で指定したユーザの直近20件のアクティビティ(ツイート、リプ、リツイート)を取得します。メソッドは引数が異なるものが複数ありますが、今回使用しているのは以下です。

(構文)
getUserTimeLine(String name, Paging page)

(引数)
第一引数「name」:ツイートを取得する対象のユーザ名を与えます
第二引数「page」:上記のPagingクラスのインスタンスを与えます。

目次にもどる

(1-2) サンプルプログラム

サンプルプログラムをご紹介します。
・OAuthXXXXの箇所はご自身の認証情報をに置き換えてご使用ください。
・タイムライン取得対象のユーザー(変数:userID)はご自身で取得したいものに置き換えてください。

import twitter4j.*;
import twitter4j.conf.ConfigurationBuilder;

public class GetRetweetTest {
   public static void main(String args[]) {
      //#### 変数定義
      String userId = "XXXXXX"; //検索対象ID
      int count_like = 0;
      int count_retweet = 0;

      //#### 事前準備(トークン認証など)
      //# インスタンス生成
      ConfigurationBuilder cb = new ConfigurationBuilder();
      //# キー情報の設定
      cb.setDebugEnabled(true)
      .setOAuthConsumerKey("[ご自身のOAuthConsumerKey]")
      .setOAuthConsumerSecret("[ご自身のOAuthConsumerSecret]")
      .setOAuthAccessToken("[ご自身のOAuthAccessToken]")
      .setOAuthAccessTokenSecret("[ご自身のOAuthAccessTokenSecret]");

      //# カウンター変数(forループ用)
      int counter = 1;
      //# ページカウンタ変数
      int pgcount = 1;

      try {
         //#### (事前準備)各種Twitterインスタンスの生成
         //# ファクトリクラスのインスタンス生成
         TwitterFactory tf = new TwitterFactory(cb.build());
         //# Twitterクラスのインスタンス生成
         Twitter twitter = tf.getInstance();
         //# 検索結果の格納用
         ResponseList statusList;
         do {
            //# ページ情報の設定(ページ番号、件数)
            Paging pg = new Paging(pgcount,10);
            //# クエリの発行・結果格納
            statusList = twitter.getUserTimeline(userId, pg);
            //# 取得した直近200件のタイムラインアクティビティをループ
            for (Status status : statusList) {
               //# リツイートは表示しない
               if(!status.isRetweet()) {
                     //# ツイートの内容を取得
               String temp = status.getText();
               //# ツイートに関する各種データのprint
               //# Date: ツイート日
               //# Tweet Id: ツイートのID
               //# retweet count: リツイートされた回数
               //# favorite count: いいねの数
               //# Contents: ツイートの最初の6文字を切り取り
               System.out.println("No."+counter
                  +", Date : "+status.getCreatedAt()
                  +", Tweet Id : "+status.getId()
                  +", retweet count: "+status.getRetweetCount()
                  +", favorite count : "+status.getFavoriteCount()
                  +" Contents : "+temp.subSequence(0, 5)
                  );
               //# 「累計」いいね数を更新
               count_like = count_like + status.getFavoriteCount();
               //# 「累計」リツイート数
                  count_retweet = count_retweet + status.getRetweetCount();
                  counter++;
               }
            }
            pgcount++;
         }while(statusList.size()!=0 && pgcount < 60);
      }catch (TwitterException ex){
         ex.printStackTrace();
      System.out.println("#### ツイートの取得に失敗しました: " + ex.getMessage());
      System.exit(-1);
      }
      System.out.println("count_like : "+count_like);
      System.out.println("count_retweet : "+count_retweet);
   }
}

(図121)実行結果例
↓これは筆者のタイムラインを取得した例です。

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Java

執筆者:


comment

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

関連記事

Javaで正規表現を使ってURLを文字列から検出する方法

<目次> (1) Javaで正規表現を使ってURLを文字列から検出する方法  (1-1) 構文  (1-2) 構文の説明  (1-3) サンプルプログラム  (1-4) ツールのご紹介 (1) Jav …

TwitterAPIのJavaでの使い方をご紹介~【入門編】Twitter4j導入~ハッシュタグでツイート検索するまで~

<目次> (1) TwitterAPIのJavaでの使い方をご紹介  (1-1) STEP0:前提条件  (1-2) STEP1:ライブラリ(jar)のダウンロード  (1-3) STEP2:アプリケ …

JavaのMapの種類や特徴について(HashMap/LinkedHashMap/TreeMap)

<目次> (1) JavaのMapの種類や特徴について(HashMap/LinkedHashMap/TreeMap)  (1-1) Mapとは?  (1-2) Mapの種類や特徴   (1-2-1) …

JSPやServletの画面をスマホ表示に対応させる方法~メディアクエリの導入~

<目次> (1) JSPやServletの画面をスマホ表示に対応させる方法 (2) 設定手順  (2-1) Step1:ビューポートの設定  (2-2) Step2:メディアクエリを記述したcssファ …

JSP/Servletで画面毎のアクセスカウンターを作成してみた(パート2:ソース解説編)

(1) 仕様について (2) ソースコード  (2-1) AccessCounter2.java   (2-1-1) サンプルPG   (2-1-2) サンプルPG解説  (2-2) DbConnec …

  • English (United States)
  • 日本語
Top