Twitterタイムラインの検索丸コピサンプルです。
これを丸っとコピって実行すれば、タイムラインの検索結果が取得できます。
たまにツイッター検索結果を表示しているサイトで、表示されていない場合があります。
そんなサイトはきっと、PHPでツイッターAPIを叩いているんだと思います。
PHPで検索結果などOAuthを通さないAPIのアクセスは、
自サーバ→ツイッターサーバにアクセスするので、
そのページにアクセスがあるたびに、APIの回数制限のカウントが減っていきます。(たしか、OAuth通さない時は、1時間に100回だった気がします。)
そこで、Javascriptを使います。
Javascriptからの非同期通信の場合、APIの回数制限のカウントは、
クライアントのIPアドレスからになるので、
サーバで同時にアクセスがあろうとも関係ないのです。
PHPだとサーバにアクセスしている全員が閲覧できなくなりますが、
JSだとアクセス元のIPだけ閲覧できないので、自業自得ってことで対応できます。
基本的にOAuthしないAPIのアクセスはJavascriptを使った方がよさそうですね。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Twitter検索サンプル</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script>
$(document).ready(function() {
$str_search = "so-lat.com"
var $getJsonUrl="http://search.twitter.com/search.json?q=" + $str_search + "&rpp=5&callback=?";
var $data;
$.ajaxSetup({scriptCharset:'utf-8'});
$.getJSON($getJsonUrl, function($data) {
var $str_html = "";
for(var $i in $data["results"]){
$str_html += '<li>';
$str_html += '<img src="'+$data['results'][$i].profile_image_url+'" alt="" width="50" height="50" />';
$str_html += $data['results'][$i].text;
$str_html += '</li>';
}
$("#twitter").html($str_html);
});
});
</script>
</head>
<body>
<ul id="twitter"></ul>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Twitter検索サンプル</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script>
$(document).ready(function() {
$str_search = "so-lat.com"
var $getJsonUrl="http://search.twitter.com/search.json?q=" + $str_search + "&rpp=5&callback=?";
var $data;
$.ajaxSetup({scriptCharset:'utf-8'});
$.getJSON($getJsonUrl, function($data) {
var $str_html = "";
for(var $i in $data["results"]){
$str_html += '<li>';
$str_html += '<img src="'+$data['results'][$i].profile_image_url+'" alt="" width="50" height="50" />';
$str_html += $data['results'][$i].text;
$str_html += '</li>';
}
$("#twitter").html($str_html);
});
});
</script>
</head>
<body>
<ul id="twitter"></ul>
</body>
</html>