【问题标题】:YouTube PHP API - Zend_Gdata_App_HttpExceptionYouTube PHP API - Zend_Gdata_App_HttpException
【发布时间】:2011-09-27 13:43:51
【问题描述】:

我有一个使用 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: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 <b>too_many_recent_calls</b> 告诉你什么都没有,是吗? :)
  • 确实如此,但我如何减少最近的通话或如何使其发挥作用? :)... 或者对我来说唯一的方法是限制访问的人?对于 youtube api,对我来说似乎很愚蠢。我用错了吗?调用 api 太多了?还要别的吗? :)...
  • 你唯一能做的就是捕捉这些异常并告诉用户稍后再试;并在本地缓存一些常用搜索词的结果。也许有一些方法可以增加您的应用程序的配额,但我不确定,请尝试谷歌搜索...
  • 感谢您的信息,我不确定他们是否会让我提高限制,因为我正在下载他们的视频 :)...我会通知用户。

标签: php api zend-framework youtube


【解决方案1】:

如 cmets 中所述,我只需要限制访问权限并降低调用次数。谢谢斯拉瓦。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-02
    • 2012-04-05
    • 1970-01-01
    • 2012-03-22
    • 2020-09-03
    • 2014-04-05
    • 1970-01-01
    相关资源
    最近更新 更多