Excepción inesperada al serializar la continuación del Script de Google Apps
Recientemente comencé a recibir el error "Excepción inesperada al serializar la continuación" en una hoja de cálculo Script de Google Apps al intentar depurar. El error parece comenzar después de crear una conexión a la API de Google CloudSQL. Este error sigue ocurriendo incluso después de comentar el constructor del objeto jdbc. Parece que otros han tenido este problema y necesitaron una tecnología de Google para resolver el problema.
He buscado en todos los foros de discusión una solución a este problema sin suerte. ¿Hay alguna posibilidad de que exista una tecnología de Google que pueda echar un vistazo por debajo del capó para mí? Yo publicaría el código si pudiera determinar qué línea estaba provocando realmente el error.
EDITAR:
Ok, creo que he descubierto dónde está ocurriendo el error. Parece ser el
var response = UrlFetchApp.fetch(url + nextPage,oauth_options);
en el bucle while. Aquí está el código de función completo.
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;
}