2011-07-03 40 views
0

我有一個工作網站,它使用YouTube API。一切都很好,但今天我發現,同時使用這個API,我得到錯誤:YouTube PHP API - Zend_Gdata_App_HttpException

Fatal error: Uncaught exception 'Zend_Gdata_App_HttpException' with message 'Expected response code 200, got 403 <?xml version='1.0' encoding='UTF-8'?><errors><error><domain>yt:quota</domain><code>too_many_recent_calls</code></error></errors>' in /root/public_html/grabandrun.com/public/ZendGdata/library/Zend/Gdata/App.php:700 Stack trace: #0 /root/public_html/grabandrun.com/public/ZendGdata/library/Zend/Gdata.php(221): Zend_Gdata_App->performHttpRequest('GET', 'http://gdata.yo...', Array, NULL, NULL, NULL) #1 /root/public_html/grabandrun.com/public/ZendGdata/library/Zend/Gdata/App.php(861): Zend_Gdata->performHttpRequest('GET', 'http://gdata.yo...', Array) #2 /root/public_html/grabandrun.com/public/ZendGdata/library/Zend/Gdata/App.php(754): Zend_Gdata_App->get('http://gdata.yo...', NULL) #3 /root/public_html/grabandrun.com/public/ZendGdata/library/Zend/Gdata/App.php(205): Zend_Gdata_App->importUrl('http://gdata.yo...', 'Zend_Gdata_YouT...', NULL) #4 /root/public_html/grabandrun.com/public/ZendGdata/library/Zend/Gdata.php(in /root/public_html/grabandrun.com/public/ZendGdata/library/Zend/Gdata/App.php on line 700 

我的代碼看起來在某種程度上是這樣的:

require_once 'Zend/Loader.php'; 
Zend_Loader::loadClass('Zend_Gdata_YouTube'); 
Zend_Loader::loadClass('Zend_Uri_Http'); 
$yt = new Zend_Gdata_YouTube(); 
$query = $yt->newVideoQuery(); 
$query->setQuery($searchTerms); 
$query->setStartIndex($index2); 
$query->setMaxResults(10); 
$query->setOrderBy($order); 

$videoFeed = $yt->getVideoFeed($query); 

foreach ($videoFeed as $videoEntry) { 
    $videoThumbnails = $videoEntry->mediaGroup->thumbnail[0]->url; 
    $title = $videoEntry->mediaGroup->title; 
    $vidId = $videoEntry->getVideoId(); 
    $vidDescription = $videoEntry->mediaGroup->description; 
    $duration = $videoEntry->mediaGroup->duration->seconds; 
    $rating = round($videoEntry->rating->average,1)." out of 5"; 
    echo "info..."; 
} 

有趣的是,它有時工作和某個不...我真的不知道爲什麼,謝謝,謝謝。

+3

And ** yt:quota ****too_many_recent_calls**告訴你什麼,哈? :) – Slava

+0

它確實如此,但我如何降低最近的通話或我如何設法使其工作? :)...或者唯一的辦法是限制訪問人數?對於YouTube而言,我似乎很愚蠢。我使用什麼錯誤?調用api太多?還要別的嗎? :)... – haluzak

+0

您唯一能做的就是捕捉這些異常並告訴用戶稍後再試;還可以本地緩存一些常用搜索詞的結果。也許有一些方法來增加你的應用程序的配額,但我不確定,嘗試谷歌搜索... – Slava

回答

0

正如評論中所述,我只需限制訪問權限並降低呼叫。謝謝Slava。