1

我开始学习 Twitter API。我想对关键字进行简单的搜索,例如“bananaz”,并从它将返回的 JSON 数据中获取一些信息。我使用 PHP 和 abrahams twitteroauth 库。

我的代码是这样的:

require_once('/twitteroauth.php');
$connection = new TwitterOAuth ('****', '****', '****', '******');

$statuses = $connection->get('search/tweets.json?q=bananaz');

print_r($statuses);

但它返回的只是“抱歉,该页面不存在 [code] => 34”

4

2 回答 2

2

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);
于 2012-12-13T05:33:25.177 回答
1

请注意 Twitter API 1.1 要求身份验证。看看这个文档:

https://dev.twitter.com/docs/api/1.1/get/search/tweets

于 2013-03-18T10:59:08.730 回答