获取"禁止错误403"在Google日历上使用Zend_Gdata_Calendar()

时间:2014-11-21 14:48:10

标签: zend-framework google-calendar-api

我在我的某个网站的主页上运行了一个嵌入式脚本,该脚本会在我们的Google日历上提取所选事件列表并在页面上列出。自2011年左右以来,我一直在运行这个脚本,没有变更或修改。

昨天(也许是前一天)脚本开始抛出错误Forbidden Error 403

以下是该剧本的片段:

$ctz = 'America/Los_Angeles';
$calendarID[] = 'example.com_abcdefghijklmnop1234567890@group.calendar.google.com'; //Dept 1 Events
$calendarID[] = 'example.com_klmnopqrstuvwxyz0987654321@group.calendar.google.com'; //Dept 2 Events
/*...*/
$eventArray = buildEventList($calendarID, $ctz);


function buildEventList($calendarID=NULL,$ctz=NULL) {

    require_once('Zend/Loader.php');
    Zend_Loader::loadClass('Zend_Gdata');
    Zend_Loader::loadClass('Zend_Gdata_Calendar');
    Zend_Loader::loadClass('Zend_Uri_Http');

    $gdataCal = new Zend_Gdata_Calendar();
    $query = $gdataCal->newEventQuery();

    try {
        /*...*/
    }

    catch (Zend_Gdata_App_Exception $e) {
        $return = $e->getMessage();
    }

    return $return;

}

以下错误消息显示为catch {}:

Expected response code 200, got 403
<HTML>
<HEAD>
<TITLE>Forbidden</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Forbidden</H1>
<H2>Error 403</H2>
</BODY>
</HTML>

关于为什么会这样开始或如何解决的任何想法?

注意: 我登录了我的每个Google日历,其设置上没有任何内容发生变化。它们仍然是公开共享的,并且ID没有更改 - 我验证了Google帐户中的所有内容。

通过持续研究学习: 我想我可能需要一个谷歌开发人员密钥 - (1)不知道如何获得一个和(2)继续研究。

1 个答案:

答案 0 :(得分:5)

自11月17日起,您无法再使用Google API V1或API V2。 Zend Gdata使用谷歌API V2。所以,你不能再使用zend来获取事件了。您必须使用谷歌库或使用自己的类。你可以看到没有谷歌库的谷歌api V3类的例子:Authentification Zend Gdata (403 forbidden)