スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Zend_Service_Twitter_Searchで取れるだけ取ってくる

Zend_Service_Twitter_Searchのsearchメソッドでは、一回だけ検索してくれます。
rpp=100にすれば100件検索してくれます。
pageを1から15まで設定して検索すれば最大1500件取ってこれるので、全部取ってくる関数を作ってみました。


public function search($content, $sinceId=null) {
$paramAry = array();
if (!empty($sinceId)) {
$paramAry['since_id'] = $sinceId;
}
$paramAry['rpp'] = 100;
$result = array();
$failCount = 0;
$twitterSearch = new Zend_Service_Twitter_Search('json');
for ($page = 1; $page <= 15; $page++) {
$paramAry['page'] = $page;
try {
$searchResults = $twitterSearch->search($content, $paramAry);
} catch (Exception $e) {
$failCount = $failCount + 1;
$page = $page - 1;
if ($failCount >= 10) {
throw new Exception("fail search " . $content);
}
}
if (empty($searchResults['results'])) {
break;
}
$result = array_merge($result, $searchResults['results']);
}
return $result;
}

検索結果の最初のidをsinceIdにして、この関数を再び呼べば新しく増えたものだけ、取得できます。
スポンサーサイト

COMMENTS

COMMENT FORM

TRACKBACK


この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。