(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)実行結果例
↓これは筆者のタイムラインを取得した例です。