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

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

関連記事

JavaScriptの必須チェックのサンプルプログラム

  <目次> (1) JavaScriptの必須チェックのサンプルプログラム  (1-1) 構文  (1-2) サンプルプログラム (1) JavaScriptの必須チェックのサンプルプログ …

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

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

JavaのJDBC接続でjava.sql.SQLRecoverableException: Closed Connectionが発生した時の解決メモ

(0)目次&概説 (1) エラー事象の概要  (1-1) エラーの発生状況  (1-2) エラーメッセージ全文 (2) エラーの原因 (3) エラーの対処方法  (3-1) エラーの修正内容  (3- …

JSP Servletでセッションの有効期限を設定する方法

<目次> (1) JSP Servletでセッションの有効期限を設定する方法  (1-1) セッションの有効期限設定の概要  (1-2) 方法1:web.xmlに追記する方法  (1-3) 方法2:プ …

JFreeChartで描画したグラフをJSP/Servlet画面に表示する方法

(0)目次&概説 (1) 記事の目的  (1-1) 目的 (2) 表示方法の概要  (2-1) 表示の仕組み  (2-2) 実装の手順 (3) サンプルプログラム  (3-1) JSPのサンプルプログ …

  • English (United States)
  • 日本語
Top