Twitter API 1.1搜索查询和OAuth

时间:2012-12-12 16:48:24

标签: php api twitter twitter-oauth

我开始学习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”

2 个答案:

答案 0 :(得分:2)

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不支持它。搜索的网址与API网址不同,这就是您收到“网页不存在错误”(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);

答案 1 :(得分:1)

请注意,因为Twitter API 1.1需要身份验证。 看看这个文档:

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