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