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

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

関連記事

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

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

Spring Bootでpom.xmlに「Unknown error」が出た時の対処方法について

  <目次> (1) Spring Bootでpom.xmlに「Unknown error」が出た時の対処方法について  (1-1) 発生状況  (1-2) 原因  (1-3) 対処法①(非 …

Javaのstatic変数とは?その特徴及び付けた場合と付けない場合の違いを解説

(0)目次&概説 (1) static修飾子  (1-1) staticメンバとは?  (1-2) static変数   (1-2-1) static変数の説明と特徴   (1-2-2) static …

Newton法で平方根を求めるJavaのサンプルプログラム+操作動画もご紹介

<目次> (1) Newton法で平方根を求めるJavaのサンプルプログラム  (1-1) Newton法の式を簡単に復習  (1-2) Newton法のサンプルプログラム (1) Newton法で平 …

EclipseでJavaプロジェクトを同一サーバ内で別名コピーする方法

(0)目次&概説 (1) プロジェクトの別名コピーの手順  (1-1) プロジェクトのコピー&ペースト  (1-2) コピーしたプロジェクトをTomcatへ登録  (1-3) Tomcatサーバの再起 …

  • English (United States)
  • 日本語
Top