YouTube PHP API-Zend_Gdata_App_HttpException
我有一个工作网站,它使用youtube api。一切都很好,但今天我注意到在使用此api时出错:YouTube PHP API-Zend_Gdata_App_HttpException,php,api,zend-framework,youtube,Php,Api,Zend Framework,Youtube,我有一个工作网站,它使用youtube api。一切都很好,但今天我注意到在使用此api时出错: 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:
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...";
}
有趣的是,它有时起作用,有时不起作用。。。我真的不知道为什么,非常感谢您的帮助。如评论中所述,我只需限制访问权限并降低通话次数。谢谢斯拉瓦。和yt:quota太多了\u最近的电话什么都没告诉你,是吗确实如此,但我如何减少最近的通话,或者如何使其正常工作。。。还是我唯一的办法就是限制人们参观?在我看来,youtube api相当愚蠢。我用错什么了吗?调用api太多?还有别的吗?:。。。您唯一能做的就是捕获这些异常,并告诉用户在发生异常时稍后再试;并且还本地缓存一些常用搜索词的结果。也许有一些方法可以增加你的应用程序的配额,但我不确定,试试谷歌吧…谢谢你提供的信息,我不确定他们是否会让我增加限额,因为我正在下载他们的视频:。。。那我就通知用户。