使用API​​ v3访问Google日历

时间:2014-12-15 21:20:54

标签: php api google-calendar-api google-api-v3

我试图重写我之前未使用Google Calendar v3 API编写的遗留应用程序。

我已经实施了google-api-php-client,在我的开发者控制台中创建了一个API密钥,并完成了身份验证过程。我有一个accessToken我会在数据库中持续存在,当它到期时,我可以刷新该令牌。

但是,我无法完全使用日历

我已经关注了那里有限的文档并且有以下内容:

$this->client = new Google_Client();
$this->client->setClientId( $this->settings['clientId'] );
$this->client->setClientSecret( $this->settings['clientSecret'] );
$this->client->setAccessToken( $this->settings['accessToken'] );

$service = new Google_Service_Calendar($this->client);

$calendarList = $service->calendarList->listCalendarList();

while(true) {
foreach ($calendarList->getItems() as $calendarListEntry) {
    echo $calendarListEntry->getSummary();
}

$pageToken = $calendarList->getNextPageToken();

if ($pageToken) {
    $optParams = array('pageToken' => $pageToken);
    $calendarList = $service->calendarList->listCalendarList($optParams);
} else {
    break;
    }
}

我回来的错误是:

Message:  Undefined property: Google_Service_Calendar_CalendarList::$items

我已经检查了我的Google日历帐户并且所有日历都已共享,因此应该没有问题,但我不知道为什么这是一个问题,因为我使用的是经过身份验证的帐户反正。

任何人都可以提供建议吗?

非常感谢

1 个答案:

答案 0 :(得分:2)

你得到的错误

Message:  Undefined property: Google_Service_Calendar_CalendarList::$items

是因为对象是空的

替换

while(true) {
foreach ($calendarList->getItems() as $calendarListEntry) {
    echo $calendarListEntry->getSummary();
}Undefined property

用这个摆脱错误。

if ($calendarList->getItems()) {
    foreach ($calendarList->getItems() as $calendarListEntry) {
    echo $calendarListEntry->getSummary();

    }

同时调整以下内容

$this->client = new Google_Client();

需要

$client = new Google_Client();