2013 年 10 月更新的答案
TwitterOAuth 现在支持新的 Twitter API 1.1 并且搜索已经过身份验证(文档)——搜索查询的工作方式与原始代码类似:
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');
然而,该库的作者建议仅使用 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);