Quiero usar el script de Google para hacer una solicitud y guardar algunos datos en la hoja de Google. El problema es cuando trato de pasar algunos valores no enteros como parámetros en la solicitud. Creo que tiene algo que ver con el hecho de que las hojas usan comas para separar decimales de enteros mientras que mi programa envía los números separados por un punto.
Aquí es donde estoy ahora:
const doPost = (event) => { console.log(`doPost`, JSON.stringify(event)); const { parameter } = event; const { temp, peso } = parameter; var date = new Date(); var sheet = SpreadsheetApp.getActiveSheet(); sheet.appendRow([date, parseFloat(temp), peso]); }
Cuando hago una solicitud de publicación con parámetros: { temp: 1.234, peso: 1.234 } el resultado en la hoja de Google es un gran desastre.
¿Alguien tiene alguna idea de cómo solucionar esto?
editar:
function Test(){ var sheet = SpreadsheetApp.getActiveSheet(); var d = 1.23456; var date = new Date(); sheet.appendRow([date, d]); }
Esto funciona bien... no sé si puede ayudarte a depurar.
En realidad, no hago esto mucho, así que de ninguna manera soy un experto en eso.
function doPost(e) { Logger.log(e.postData.contents); const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName("Sheet1"); let data = JSON.parse(e.postData.contents); sh.appendRow([data.first,data.second]) } function sendData(obj) { const url = ScriptApp.getService().getUrl(); const params={"payload":JSON.stringify(obj),"muteHttpExceptions":true,"method":"post","headers": {"Authorization": "Bearer " + ScriptApp.getOAuthToken()}}; UrlFetchApp.fetch(url,params); } function saveMyData() { sendData({first:"1.234",second:"1.432"}); }
Esto funcionó para mí.
¡Finalmente lo descubrí!
El problema estaba en la configuración del archivo de hoja de Google. Soy de Italia por lo que entra por defecto en formato italiano. Por alguna razón, esto estropea todas las entradas nuevas. La solución es muy simple: ¡cambie el formato al inglés y el problema debería resolverse solo!