PHPでリツイート回数の上位を表示

(1/1)
今回は、Twitter API を利用し、自分の投稿に対してリツイート回数が多いものの上位を表示する PHP プログラムを作ってみることにする。

サンプル・プログラムの実行例

リツイート回数上位ランク

サンプル・プログラム

解説:準備

Twitter API を利用する関数群はクラス pahooTwitterAPI として別ファイル "pahooTwitterAPI.php" に定義してある。このファイルを  require_once  できるパスに配置すること。

OAuth認証を利用するため、プログラムを Twitter に登録する必要がある。その手順については「PHP で Twitter に投稿(ツイート)する」を参照のこと。取得したパラメータは、クラス pahooTwitterAPI 冒頭にあるクラス定数に記載すること。

https通信を使うため、PHP から OpenSSL を利用できるようにしておく必要がある。その手順は「PHP の https 対応」を参照のこと。
プログラムがうまく動かなかったら、「Twitter への再登録が必要な場合も」を参照のこと。

Twitter API:GET statuses/retweets_of_me

リツイート一覧を取得するには、「Twitter API:GET statuses/retweets_of_me」を用いる。
Twitter API (GET)
URL
https://api.twitter.com/1.1/statuses/retweets_of_me.json

入力パラメータ
項目名 フィールド名 内  容
件数 count integer 【オプション】取得件数。省略時は20、最大100。
応答データ(一部)(json) id_str 投稿ID created_at 投稿日時 text 投稿文 user screen_name ユーザー名 retweet_count リツイート回数

サンプル・プログラムの解説:リツイートを取得

0098: /**
0099:  * リツイートを取得
0100:  * @param array  $retweet リツイート格納配列
0101:  * @param string $webapi  WebAPIのURL
0102:  * @return int 取得数/FALSE 取得失敗
0103: */
0104: function getReTweets(&$retweets, &$webapi) {
0105:     $ptw = new pahooTwitterAPI();
0106: 
0107:     $url    = 'https://api.twitter.com/1.1/statuses/retweets_of_me.json';
0108:     $param  = array('count' => 100);
0109:     $method = 'GET';
0110: 
0111:     $ret = $ptw->request_user($url$method$param);
0112:     if ($ret == FALSE)  return FALSE;
0113:     $webapi = $ptw->webapi;
0114: 
0115:     //情報を配列へ格納
0116:     $cnt = 0;
0117:     foreach ($ptw->responses as $item) {
0118:         $id = $item->id_str;
0119:         $retweets[$id]['url'] = 'https://twitter.com/' . $item->user->screen_name . '/status/' . $id;
0120:         $retweets[$id]['created_at'] = $item->created_at;
0121:         $retweets[$id]['text'] = $item->text;
0122:         $retweets[$id]['retweet_count'] = $item->retweet_count;
0123:         $cnt++;
0124:     }
0125: 
0126:     //リツイート回数の降順ソート
0127:     uasort($retweetsfunction($a$b) {
0128:         return $b['retweet_count'] - $a['retweet_count'];
0129:     });
0130: 
0131:     $ptw = NULL;
0132: 
0133:     return $cnt;
0134: }

Twitter API GET statuses/retweets_of_me」を利用し、認証ユーザーのリツイートを取得する。

参考サイト

(この項おわり)
header