2013 年 10 月更新答案
TwitterOAuth 现在支持新的 Twitter API 1.1 并且搜索经过身份验证 (documentation) - 搜索查询的工作方式与原始代码类似:
require_once('/twitteroauth.php');
$connection = new TwitterOAuth ('****', '****', '****', '******');
$statuses = $connection->get('search/tweets', array('q' => 'bananaz'));
print_r($statuses);
旧答案(Twitter API v1)
Twitter 不需要对搜索进行身份验证,因此 TwitterOAuth 不支持它。用于搜索的 URL 与 API URL 不同,这就是您收到“页面不存在错误”(Twitter doco) 的原因。
要解决这个问题,您可以在通过 TwitterOAuth 进行呼叫时使用完整的 URL:
$statuses = $connection->get('http://search.twitter.com/search/tweets.json?q=bananaz');
不过 author of the library recommends 只使用 cURL 进行搜索,节省了使用库的开销:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://search.twitter.com/search/tweets.json?q=bananaz");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);
curl_close($ch);
$statuses = json_decode($json);