2012-12-12 153 views
1

我開始學習Twitter API。我想簡單搜索一個關鍵詞,例如'bananaz',並從它返回的JSON數據中獲取一些信息。 我使用PHP和abrahams的twitteroauth庫。Twitter API 1.1搜索查詢和OAuth

我的代碼是這樣的:

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

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

print_r($statuses); 

但是,所有返回是 「抱歉,該網頁不存在[代碼] => 34」

回答

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對象不支持它。搜索的URL與API URL不同,這就是爲什麼您會收到「頁面不存在錯誤」(Twitter doco)。

要解決這個問題您可以使用通過TwitterOAuth對象做一個呼叫時的完整URL:

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

然而author of the library recommends只是使用搜索捲曲,節約使用圖書館的開銷:

$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); 
+0

是啊,我後來想通了。謝謝 – Arthur

+0

{「errors」:[{「message」:「Twitter REST API v1不再有效,請遷移到API v1.1。https://dev.twitter.com/docs/api/1.1/overview。 「,」code「:68}]} – 2013-09-30 19:17:59

+0

@JeanPaul和未來的觀衆 - 針對API v1.1更新的舊代碼 –