我将日历与外部应用程序同步。在此应用程序和Google日历中,我必须具有相同的事件ID。但是在此应用程序中,删除事件后,其ID可用于将来的新事件。因此,我希望在使用Calendar API删除事件时,该事件的ID可用。但是它总是留在垃圾箱中,我无法使用API将其清空。
所以,我找到的两个解决方案是:
使用clear
功能:
$cld = $service->calendars->get($calendarId);
$calendarList = $service->calendarList->listCalendarList()->getItems();
$summary = $cld->getSummary();
$timeZone = $cld->getTimeZone();
$events = $service->events->listEvents("primary")->getItems();
$service->calendars->clear('primary');
$cld->setSummary($summary);
$cld->setTimeZone($timeZone);
foreach($events as $event){
$service->events->insert("primary", $event);
}
但是此代码返回消息“ Forbidden”,在$service->calendars->clear('primary');
行上的代码为403
创建新日历并将其设置为primary
$cld = $service->calendars->get($calendarId);
$calendarList = $service->calendarList->listCalendarList()->getItems();
$summary = $cld->getSummary();
$timeZone = $cld->getTimeZone();
$events = $service->events->listEvents("primary")->getItems();
$calendarListEntry = new Google_Service_Calendar_CalendarListEntry();
$calendarListEntry->setId("[email protected]");
$calendarListEntry->setSummary($summary);
$calendarListEntry->setTimeZone($timeZone);
$createdCalendarListEntry = $service->calendarList->insert($calendarListEntry);
foreach($events as $event){
$service->events->insert("[email protected]", $event);
}
但是此代码返回消息“无效值”,其行$createdCalendarListEntry = $service->calendarList->insert($calendarListEntry);
上的代码为400
[如果有人对我有个主意,那就太好了!
谢谢。
我有同样的问题。当事件被删除并且垃圾箱在网络GUI上清空后,该事件仍保留在API中。
但是,当您去更新/删除api中的事件时,它将返回一个禁止的错误。