我开始学习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”
答案 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需要身份验证。 看看这个文档: