こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

twitterAPIを利用してツイート一覧を取得

<?php
//twitteroauth.phpを読み込み
require_once dirname(__FILE__) .'/twitteroauth.php';

//検索ワード配列
$keyword_list = array("OKWave","yahoo知恵袋");
//最大検索数
$countmax = 10;

//twitterAppsで取得
$consumerKey = '*****';
$consumerSecret = '*****';
$accessToken = '*****';
$accessTokenSecret = '*****';

$to = new TwitterOAuth(
$consumerKey,
$consumerSecret,
$accessToken,
$accessTokenSecret
);

//Twitterで検索するワード
//複数の場合はORかANDを使う
$key = "";
$size = count($keyword_list);
for($i=0;$i<$size;$i++){
$keyword = $keyword_list[$i];
$key .= $keyword;
if($i<$size-1){
$key .= " AND ";
}
}

//オプション設定
//countmaxは最大検索数
$options = array('q'=>$key,'count'=>$countmax,'lang'=>'ja');

//検索
$json = $to->OAuthRequest(
'https://api.twitter.com/1.1/search/tweets.json',
'GET',
$options
);
$jset = json_decode($json, true);

//tweetidを取得
foreach ($jset['statuses'] as $result) {
//ローマ字の名前
$screen_name = $result['user']['screen_name'];
//ユーザーID(数字)
$id = $result['user']['id'];
//ユーザー名
$name = $result['user']['name'];
//ユーザーアイコン画像URL
$link = $result['user']['profile_image_url'];
//該当ツイート
$content = $result['text'];
//更新日
$updated = $result['created_at'];
$time = date("Y-m-d H:i:s",strtotime($updated));

//不明なものはprint_rで見ればいい
//print_r($result);

echo "<img src='".$link."''>"." | ".$screen_name." | ".$id." | ".$name." | ".$content." | ".$time."
";
}
?>

このコードで特定のワードを含んだツイートを取得して【並び替えてから】表示したいのですが、並び替えがうまくできません。

ランダムや新着順、リツイート順などで並び替えることは可能でしょうか。
可能であれば、並び替えの為に必要なコードを教えていただけませんか。

投稿日時 - 2014-06-26 22:15:27

QNo.8654802

すぐに回答ほしいです

質問者が選んだベストアンサー

【ランダム】
shuffle($jset['statuses']);

【新着順】
取得した状態が新着順です

【リツイート数の多い順】
usort(
 $jset['statuses'],
 function ($a, $b) {
  return $b['retweeted_count'] - $a['retweeted_count'];
 }
);


(蛇足)

TwitterOAuthの正しい使い方
http://qiita.com/rana_kualu/items/357a031c0453a3538ad3

ライブラリに頼らないTwitterAPI入門
http://qiita.com/mpyw/items/b59d3ce03f08be126000

個人的にはjson_decodeの第2引数は省略してオブジェクトとして扱わせるほうが書きやすくて好きですね。 $jset['statuses'] より $jset->statuses の方がいいです。

投稿日時 - 2014-06-27 00:21:33

お礼

できました!

本当にありがとうございます!!

投稿日時 - 2014-06-27 00:45:27

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問