谷歌日历 API v3 快速添加失败


Google Calendar API v3 quickAdd fail

首先,我可以从Google API网页添加事件通过输入"日历 ID"和"文本"参数成功 https://developers.google.com/google-apps/calendar/v3/reference/events/quickAdd#try-it

但是我无法使用"quickAdd"API通过使用PHP在Google日历中添加事件。

require_once "google-api-php-client/src/Google/Client.php";
require_once "google-api-php-client/src/Google/Service/Calendar.php";
// Service Account info
$calName = 'dcm2p5gkf3ge1r7k78f0ko28tc@group.calendar.google.com';
$client_id = '759399732845-j93sis8dktkdj00l3b8mn7gjs3ncf6b9.apps.googleusercontent.com';
$service_account_name = '759399732845-j93sis8dktkdj00l3b8mn7gjs3ncf6b9@developer.gserviceaccount.com';
$key_file_location = 'SMSProject-f14380ee82e4.p12';
$client = new Google_Client();
$client->setApplicationName("SMSProject");
$service = new Google_Service_Calendar($client);
$key = file_get_contents($key_file_location);
$cred = new Google_Auth_AssertionCredentials($service_account_name, array('https://www.googleapis.com/auth/calendar'), $key);
$client->setAssertionCredentials($cred);
$createdEvent = $service->events->quickAdd('primary', 'Appointment at Somewhere on January 23rd 10am-10:25am');
echo $createdEvent->getId();

事件 ID "g69tq9k7s38rfgit1mpnit9bpk"可以在浏览器中回显,但日历中不显示任何事件

如果我改变

$createdEvent = $service->events->quickAdd('primary', 'Appointment at Somewhere on January 23rd 10am-10:25am');

$createdEvent = $service->events->quickAdd($calName, 'Appointment at Somewhere on January 23rd 10am-10:25am');

无法生成事件 ID 并显示以下错误消息

调用 POST https://www.googleapis.com/calendar/v3/calendars/dcm2p5gkf3ge1r7k78f0ko28tc%40group.calendar.google.com/events/quickAdd 时出错: (404) 未找到

我需要使用"快速添加"而不是"插入"API。如何解决问题?谢谢!

我遇到了同样的问题,但后来我发现它实际上是在日历中为服务帐户 xxxxxxx@developer.gserviceaccount.com 而不是我的个人日历创建事件。如果您希望它在您使用的个人日历中创建事件,请进入个人日历的设置,并将其与您的服务帐户共享 xxxxxxx@developer.gserviceaccount.com那么你应该能够使用...

$createdEvent = $service->events->quickAdd($calName, 'Appointment at Somewhere on January 23rd 10am-10:25am');

。而不是"主要"