Google Calendar API /清空主日历的垃圾箱

问题描述 投票:0回答:1

我将日历与外部应用程序同步。在此应用程序和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

[如果有人对我有个主意,那就太好了!

谢谢。

php events google-calendar-api recycle-bin
1个回答
0
投票

我有同样的问题。当事件被删除并且垃圾箱在网络GUI上清空后,该事件仍保留在API中。

但是,当您去更新/删除api中的事件时,它将返回一个禁止的错误。

© www.soinside.com 2019 - 2024. All rights reserved.