Twitter検索結果をログに残す

Search APIでの検索結果では古いツイートについては対象外となってしまいます。
Twitterを利用したキャンペーンページ等で最新のツイートがぽつぽつと表示されてるだけだと寂しいですよね。
そこで古いツイートを含めた検索結果をCSV保存でログにしておいてログの新着順を表示させます。


require_once "JSON.php";

$search_word = '%23akb48'; // 検索用ハッシュタグ【%23***】で指定のこと
$post_cnt = 15; // Tweets取得数
$url = "http://search.twitter.com/search.json?q=".$search_word."&rpp=". $post_cnt."&lang=ja";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
$result = curl_exec($ch);
curl_close($ch);
$res = json_decode($result); //JSON PHP5.2.0以降から対応

foreach( $res->results as $value ){
$html = "";
$status_id = $value->id_str; // ツイートID
$content = $value->text; // ツイート内容
$user_name = $value->from_user; // アカウント名
$user_image = $value->profile_image_url; // アカウント画像
$created_time = $value->created_at; // ツイート投稿日時

if ($handle = fopen( 'hoge.csv', 'r' )){
$tweets = Array(); // 該当のツイートIDを保存する配列
$res = Array(); // 該当のコップワードを保存する配列

// 重複するツイートを検索
while( ( $lines = fgetcsv( $handle ) ) !== FALSE ){
if( $lines[0] == $status_id ){
$tweets[0] = $lines[0];
}
}
}
if (empty($tweets)) {
// 重複しないツイートの場合、レコード挿入
$array_data = array();
$content = ereg_replace("\r|\n","",$content);
array_push($array_data,array("$status_id","$content","$user_name","$user_image","$res_msg"));
$outputFile = "hoge.csv";

$fp = fopen($outputFile, "a");
foreach( $array_data as $key => $val){ fputcsv($fp, $val); }
fclose($fp);
}
}
$dat = file("hoge.csv"); // CSVファイルの配列化
$out_dat = array(); // 出力用の配列を作成

// 要素を出力用配列に収納
for($i=0;$i $val) {
if( $cnt < $post_cnt){
$array = array();
$array = split(",",$val);
$content = $array[1];
$user_name = $array[2];
$user_image = $array[3];
$msg = $array[4];

$content = mb_strimwidth($array[1], 0, 120, "...",utf8); // 文字列省略
$content= preg_replace('/\"/', '', $content);
$content= preg_replace("#(^|[\s\"\[)) ]*)#", "\\1\\2", $content);
$content= preg_replace("#(^|[\s\"\[)) ]*)#", "\\1\\2", $content);
$content= preg_replace("/@(\w+)/", "@\\1", $content);
$content= preg_replace("/#(\w+)/", "#\\1", $content);

// ブログの仕様によりHTML表記を省略します
$html = "";
  $html .= "...";
echo $html;
}
$cnt = $cnt + 1;
}

タグ:

コメントを残す