Google 日历 - 创建事件显示成功但未显示在日历上
Google Calendar - Create Event says successful but not showing on calendar
我正在尝试使用 Google 日历 API 创建 Google 日历事件。具体来说,我正在使用服务帐户方法,因为我的应用程序将 运行 通过一系列事件来创建并将它们插入到我的 Google 日历中。使用的语言是 PHP.
我已经从 gitHub 下载了 PHP 客户端库。 https://github.com/googleapis/google-api-php-client。
我的测试代码如下。这成功完成并返回一个长事件 ID。但是,当我尝试将其粘贴到我的浏览器中时,它会将我带到我的日历并显示 "Could not find the requested event"。 2020 年 5 月 28 日也没有任何显示。任何人都可以让我明白我做错了什么吗?
C:/sites/GoogleCredentials/service-account.json 中的文件是我在 Google 云控制台的项目下创建的凭据中的服务帐户密钥。
require_once('google-calendar/vendor/autoload.php');
putenv('GOOGLE_APPLICATION_CREDENTIALS=C:/sites/GoogleCredentials/service-account.json');
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope(Google_Service_Calendar::CALENDAR_EVENTS);
$service = new Google_Service_Calendar($client);
$event = new Google_Service_Calendar_Event(array(
'summary' => 'Google I/O 2015',
'location' => '800 Howard St., San Francisco, CA 94103',
'description' => 'A chance to hear more about Google\'s developer products.',
'start' => array(
'dateTime' => '2020-05-28T09:00:00',
'timeZone' => 'America/New_York'
),
'end' => array(
'dateTime' => '2020-05-28T17:00:00',
'timeZone' => 'America/New_York'
)
));
$calendarId = 'primary';
$event = $service->events->insert($calendarId, $event);
printf('Event created: '.$event->htmlLink);
您需要记住服务帐户不是您。服务帐户有自己的 google 日历帐户。事件被插入到它的 google 日历中,而不是你的。
您应该使用服务帐户电子邮件地址与服务帐户共享您的日历,然后使用您日历中的日历 ID 插入。
您也可以保持原样,只需确保通过服务帐户 运行 邀请自己参加活动。
我正在尝试使用 Google 日历 API 创建 Google 日历事件。具体来说,我正在使用服务帐户方法,因为我的应用程序将 运行 通过一系列事件来创建并将它们插入到我的 Google 日历中。使用的语言是 PHP.
我已经从 gitHub 下载了 PHP 客户端库。 https://github.com/googleapis/google-api-php-client。
我的测试代码如下。这成功完成并返回一个长事件 ID。但是,当我尝试将其粘贴到我的浏览器中时,它会将我带到我的日历并显示 "Could not find the requested event"。 2020 年 5 月 28 日也没有任何显示。任何人都可以让我明白我做错了什么吗?
C:/sites/GoogleCredentials/service-account.json 中的文件是我在 Google 云控制台的项目下创建的凭据中的服务帐户密钥。
require_once('google-calendar/vendor/autoload.php');
putenv('GOOGLE_APPLICATION_CREDENTIALS=C:/sites/GoogleCredentials/service-account.json');
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope(Google_Service_Calendar::CALENDAR_EVENTS);
$service = new Google_Service_Calendar($client);
$event = new Google_Service_Calendar_Event(array(
'summary' => 'Google I/O 2015',
'location' => '800 Howard St., San Francisco, CA 94103',
'description' => 'A chance to hear more about Google\'s developer products.',
'start' => array(
'dateTime' => '2020-05-28T09:00:00',
'timeZone' => 'America/New_York'
),
'end' => array(
'dateTime' => '2020-05-28T17:00:00',
'timeZone' => 'America/New_York'
)
));
$calendarId = 'primary';
$event = $service->events->insert($calendarId, $event);
printf('Event created: '.$event->htmlLink);
您需要记住服务帐户不是您。服务帐户有自己的 google 日历帐户。事件被插入到它的 google 日历中,而不是你的。
您应该使用服务帐户电子邮件地址与服务帐户共享您的日历,然后使用您日历中的日历 ID 插入。
您也可以保持原样,只需确保通过服务帐户 运行 邀请自己参加活动。