(1) TwitterのAPIライブラリ(Twitter4j)で「いいね数」や「リツイート数」を取得する方法
(1-1) 構文
(1-2) サンプルプログラム
(1) TwitterのAPIライブラリ(Twitter4j)で「いいね数」や「リツイート数」を取得する方法
(1-1) 構文
メインとなるメソッドは「getUserTimeLine」メソッドです。
twitter.getUserTimeline([ユーザID], [Paging型インスタンス]);
| クラス | メソッド | 戻り値 | 説明 |
| Paging | - | Paging | Pagingクラスのコンストラクタを使う事で、ページに表示する件数を制御する事ができます。コンストラクタは種類が複数個ありますが、今回使用しているのは以下です。
(構文) (引数) 各ページに表示できる数には上限があるため、200以上の件数を表示するためには、ページをループしていく必要があります。 |
| getUserTimeLine | ResponseList<Status> | 引数で指定したユーザの直近20件のアクティビティ(ツイート、リプ、リツイート)を取得します。メソッドは引数が異なるものが複数ありますが、今回使用しているのは以下です。
(構文) (引数) |
(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)実行結果例
↓これは筆者のタイムラインを取得した例です。
