Loading [MathJax]/extensions/tex2jax.js

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」メソッドです。

  1. 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)はご自身で取得したいものに置き換えてください。

  1. import twitter4j.*;
  2. import twitter4j.conf.ConfigurationBuilder;
  3.  
  4. public class GetRetweetTest {
  5. public static void main(String args[]) {
  6. //#### 変数定義
  7. String userId = "XXXXXX"; //検索対象ID
  8. int count_like = 0;
  9. int count_retweet = 0;
  10.  
  11. //#### 事前準備(トークン認証など)
  12. //# インスタンス生成
  13. ConfigurationBuilder cb = new ConfigurationBuilder();
  14. //# キー情報の設定
  15. cb.setDebugEnabled(true)
  16. .setOAuthConsumerKey("[ご自身のOAuthConsumerKey]")
  17. .setOAuthConsumerSecret("[ご自身のOAuthConsumerSecret]")
  18. .setOAuthAccessToken("[ご自身のOAuthAccessToken]")
  19. .setOAuthAccessTokenSecret("[ご自身のOAuthAccessTokenSecret]");
  20.  
  21. //# カウンター変数(forループ用)
  22. int counter = 1;
  23. //# ページカウンタ変数
  24. int pgcount = 1;
  25.  
  26. try {
  27. //#### (事前準備)各種Twitterインスタンスの生成
  28. //# ファクトリクラスのインスタンス生成
  29. TwitterFactory tf = new TwitterFactory(cb.build());
  30. //# Twitterクラスのインスタンス生成
  31. Twitter twitter = tf.getInstance();
  32. //# 検索結果の格納用
  33. ResponseList statusList;
  34. do {
  35. //# ページ情報の設定(ページ番号、件数)
  36. Paging pg = new Paging(pgcount,10);
  37. //# クエリの発行・結果格納
  38. statusList = twitter.getUserTimeline(userId, pg);
  39. //# 取得した直近200件のタイムラインアクティビティをループ
  40. for (Status status : statusList) {
  41. //# リツイートは表示しない
  42. if(!status.isRetweet()) {
  43. //# ツイートの内容を取得
  44. String temp = status.getText();
  45. //# ツイートに関する各種データのprint
  46. //# Date: ツイート日
  47. //# Tweet Id: ツイートのID
  48. //# retweet count: リツイートされた回数
  49. //# favorite count: いいねの数
  50. //# Contents: ツイートの最初の6文字を切り取り
  51. System.out.println("No."+counter
  52. +", Date : "+status.getCreatedAt()
  53. +", Tweet Id : "+status.getId()
  54. +", retweet count: "+status.getRetweetCount()
  55. +", favorite count : "+status.getFavoriteCount()
  56. +" Contents : "+temp.subSequence(0, 5)
  57. );
  58. //# 「累計」いいね数を更新
  59. count_like = count_like + status.getFavoriteCount();
  60. //# 「累計」リツイート数
  61. count_retweet = count_retweet + status.getRetweetCount();
  62. counter++;
  63. }
  64. }
  65. pgcount++;
  66. }while(statusList.size()!=0 && pgcount < 60);
  67. }catch (TwitterException ex){
  68. ex.printStackTrace();
  69. System.out.println("#### ツイートの取得に失敗しました: " + ex.getMessage());
  70. System.exit(-1);
  71. }
  72. System.out.println("count_like : "+count_like);
  73. System.out.println("count_retweet : "+count_retweet);
  74. }
  75. }

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

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Java

執筆者:


comment

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

関連記事

EARファイル・WARファイル・JARファイルの違いや特徴について

  <目次> (1) EARファイル・WARファイル・JARファイルの違いや特徴について  (1-1) JARファイルとは(.jar)  (1-2) WARファイル(.war)  (1-3) …

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

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

Failed to execute goal org.apache.mavenエラーの原因と対処(Spring BootのMavenプロジェクトで発生)

  <目次> (1) Failed to execute goal org.apache.mavenエラーの原因と対処(Spring BootのMavenプロジェクトで発生)  (1-1) …

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

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

JSPにおけるincludeディレクティブとjsp:includeアクションの違い

<目次> (1) JSPにおけるincludeディレクティブとjsp:includeアクションの違い  (1-1) includeディレクティブ  (1-2) jsp:includeアクション  (1 …

  • English (United States)
  • 日本語
S