Google日历事件插入调用似乎已执行,但事件不存在

时间:2016-08-30 13:37:38

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

使用服务帐户,我尝试在目标用户的日历中插入事件。执行似乎成功但没有发布任何事件。这有点类似于Google Calendar API v3 - Not Creating Event (Server-to-Server Authentication)的问题,除了我使用的是作曲家指令composer require google/apiclient:^2.0安装的apiclient。因此,使用$client->setAuthConfig代替Google_Auth_AssertionsCredentials()

我已验证目标用户的日历设置为通过服务帐户电子邮件(svcacctabc@xyz.iam.gserviceaccount.com)更改事件,并且存在正确的service-account-credentials.json文件。我还在Stack Overflow和其他地方研究了许多相关条目。测试代码如下,关于我可能缺少的任何想法?

<?php
require_once __DIR__ . '/vendor/autoload.php';

$KEY_FILE_LOCATION = __DIR__ . '/service-account-credentials.json';
$scopes = array('https://www.googleapis.com/auth/calendar', 'https://www.googleapis.com/auth/calendar.readonly');

$client = new Google_Client();
$client->setApplicationName("Calendar API Test");
$client->setAuthConfig($KEY_FILE_LOCATION);
$client->setScopes($scopes);
$client->setAccessType('offline');

$service = new Google_Service_Calendar($client);
$calendarId = 'examplecalendaruser@gmail.com';

$event = new Google_Service_Calendar_Event(array(
  'summary' => 'Test inserted event',
  'description' => 'Test inserted description',
  'start' => array(
    'dateTime' => '2016-09-02T11:00:00-04:00',
  ),
  'end' => array(
    'dateTime' => '2016-09-02T12:00:00-04:00',
  ),
));

$calendarId = 'primary';
$event = $service->events->insert($calendarId, $event);
echo "\nEvent created: " . $event->htmlLink;
?>

请注意,会创建一个事件链接,但浏览它会导致“此事件不存在”消息(并且用户日历上不会显示任何事件)。

0 个答案:

没有答案