对calendar.events.list的API调用失败,并出现以下错误:同步令牌不再有效,需要完全同步。我该怎么办?

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

我收到有关同步令牌无效且需要完全同步的错误。我应该在代码中添加什么来解决它?

  • 使用Google Appscript将多个Google日历事件发送到Google表格

我尝试阅读Google Calendar API,但我不知道代码的更改位置。

这是同步令牌的一些代码。

function updateSyncToken(calendarId, syncToken) {
  var spreadsheetId = 'sheetID';
  if(calendarId == 'Cal1') {
    var range = 'Settings!B2';
  } else if(calendarId == 'Cal2') {
    var range = 'Settings!B3';
  } else if(calendarId == 'Cal3') {
    var range = 'Settings!B4';
  } else if(calendarId == 'Cal4') {
    var range = 'Settings!B5';
  } else if(calendarId == 'Cal5') {
    var range = 'Settings!B6';
  } else if(calendarId == 'Cal6') {
    var range = 'Settings!B7';
  } else if(calendarId == 'Cal7') {
    var range = 'Settings!B8';
  } else if(calendarId == 'Cal8') {
    var range = 'Settings!B9';
  } else if(calendarId == 'Cal9') {
    var range = 'Settings!B10';
  } else if(calendarId == 'Cal10') {
    var range = 'Settings!B11';
  } else {
    return
  }
  var values = [[syncToken]];

  var valueRange = Sheets.newRowData();
  valueRange.values = values;

  var appendRequest = Sheets.newAppendCellsRequest();
  appendRequest.sheetId = spreadsheetId;
  appendRequest.rows = [valueRange];

  var result = Sheets.Spreadsheets.Values.update(valueRange, spreadsheetId, range, {
    valueInputOption: 'RAW'
  });
}

function fetchEvents(calendarId, syncToken, sheetId) {
  var options = {
    syncToken: syncToken 
  }; 
  var response = Calendar.Events.list(calendarId, options);
  var events = response.items;
  if (events.length > 0) {
    updateSyncToken(calendarId, response.nextSyncToken)
    logEvents(events, sheetId);
  }
}
google-apps-script google-calendar-api
1个回答
0
投票

请参阅documentation

建议的操作:对于SyncToken或UpdatedMin参数,请擦除存储并重新同步。有关更多详细信息,请参见Synchronize Resources Efficiently。对于已经删除的事件,无需采取进一步措施。

您也可能会发现this response更多文献。

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