最近,我开始“序列化时延续意外的异常”尝试调试时,在电子表格谷歌Apps脚本得到错误。 错误似乎开始我创建的谷歌CLOUDSQL API连接后。 这个错误仍然甚至注释掉的JDBC对象构造之后发生。 看来,其他人有过这样的问题,需要一个谷歌技术来解决问题。
我已经找遍了所有的讨论板为解决这个问题,没有运气。 任何机会,有一个谷歌高科技在那里谁可以采取引擎盖给我下的样子? 我会后的代码,如果我能确定是什么行实际上是触发的错误。
编辑:
好吧,我想我已经发现了其中的错误正在发生。 似乎是
var response = UrlFetchApp.fetch(url + nextPage,oauth_options);
在while循环。 这里是整个函数的代码。
function retrieveEvents(endTimeMinimum, updatedAfter, orderBy){
//var url = 'https://www.googleapis.com/calendar/v3/calendars/' + source_cal + '/events?key=' + api_key + "&futureevents=true&orderBy=updated&sortOrder=descending&updatedMin=" + last_sync_date_formated;
//var url = 'https://www.googleapis.com/calendar/v3/calendars/' + source_cal + '/events?key=' + api_key + "&orderBy=updated&sortOrder=descending&updatedMin=" + last_sync_date_formated;
var url = 'https://www.googleapis.com/calendar/v3/calendars/' + source_cal + '/events?key=' + api_key + "&singleEvents=true";
if ((orderBy != null) && (orderBy != "")){
url += "&orderBy=" + orderBy;
}
else url += "&orderBy=updated";
if ((updatedAfter != null) && (updatedAfter != "")){
url += "&updatedMin=" + updatedAfter;
}
else url += "&updatedMin=" + last_sync_dateTime;
//if no endTimeMinimum is specified, the current time will be used.
if (endTimeMinimum == null || endTimeMinimum == ""){
endTimeMinimum = date_rfc339("Today");
}
url += "&timeMin=" + endTimeMinimum;
Logger.log("Request URL:" + url);
var largeString = "";
var events = new Array();
var nextPage = "";
var jsonObj
while(true){
var response = UrlFetchApp.fetch(url + nextPage,oauth_options);
largeString = response.getContentText();
if ((largeString != null) && (largeString != "")) {
jsonObj = JSON.parse(largeString);
}
if ('items' in jsonObj) events = events.concat(jsonObj.items);
if ('nextPageToken' in jsonObj){
nextPage = "&pageToken=" + jsonObj.nextPageToken;
continue;
}
break;
}
if (events.length == 0)return null;
return events;
}