使用 Google Calendar API 删除事件

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

参考:https://developers.google.com/calendar/v3/reference/events/delete

错误后缺少名称。操作员。 (第 131 行,文件“代码”)

function deleteEvent() {

  for (var i = 1; i < datalastRow; i++) {

    var calendarId = sheet.getRange('E2').getValue();

    var delete_eventid = sheet.getRange(i + 1, 3).getValue()

      var params = {
        calendarId: calendarId,
        eventId: delete_eventid,
      };

      calendar.events.delete(params, function(err) {
        if (err) {
          console.log('The API returned an error: ' + err);
          return;
        }
        console.log('Event deleted.');
      });

  }

}

基本上,当我尝试保存代码时,

calendar.events.delete(params, function(err)) {
行会抛出错误,我不确定为什么会发生这种情况,因为我可以运行
calendar.events.insert
并很好地创建事件,但它似乎不喜欢
calendar.events.delete

编辑:我删除了第一个答案中提到的额外的“)”

javascript google-apps-script google-calendar-api
3个回答
2
投票

如果您使用 Google Apps 脚本,这个怎么样?您可以通过deleteEvent()删除事件。 deleteEvent() 返回 void。所以我为此使用了 try-catch。

function deleteEvent() {
  var calendarId = sheet.getRange('E2').getValue();
  for (var i = 1; i < datalastRow; i++) {
    var delete_eventid = sheet.getRange(i + 1, 3).getValue();
    try {
      CalendarApp.getCalendarById(calendarId).getEventById(delete_eventid).deleteEvent();
    } catch(e) {
      console.error("Error deleting event " + delete_eventid + " from calendar " + calendarId + ". Error: " + e);
    }
  }
}

0
投票

此行有语法错误:

calendar.events.delete(params, function(err)) {

要删除的第二个参数应该是一个函数,但它应该如下所示:

calendar.events.delete(params, function(err) { ... })

区别在于第二个

)
包装了回调。


0
投票

首先,从 service.events().list() 方法获取事件。

其次,访问上面的列表以到达“项目”。会有“id”。

第三,使用该“id”作为 eventId。

第四,使用该eventId进行删除。 event.delete 的函数是here

最重要的是,不要循环遍历事件来获取eventId。您必须通过“items”访问它才能获取eventId。

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