/* * Takes a JSON object. * Uses the parameter group objects and their accociated values. * It finds the next empty row and writes the first column (A) with a timestamp * Input parameters are the specified columns to store the values in. * * i.e. {'parameter' {'B': '25.3', 'C': '65.5'}} * Would wtite a timestamp in column A, then store 25.3 in column B and 65.5 in column C * */ function doGet(e) { Logger.log( JSON.stringify(e) ); // view parameters var result = 'Ok '; // assume success if (e.parameter == 'undefined') { result = 'No Parameters'; } else { var sheet_id = '1QBIYeAb7PED2AqW170QP8J2duMjh0FgK5OS6CkX-ERk'; // Spreadsheet ID var sheet = SpreadsheetApp.openById(sheet_id).getActiveSheet(); // get Active sheet var newRow = sheet.getLastRow() + 1; var rowData = []; rowData[0] = new Date(); // Timestamp in column A for (var param in e.parameter) { Logger.log('In for loop, param=' + param); var value = stripQuotes(e.parameter[param]); Logger.log(param + ':' + e.parameter[param]); var columnNum = ((param.charCodeAt(0)) - 65); Logger.log("Column= " + columnNum); // If the number is between 1 and 26. Number of letters in the alphabet excluding A which is timestamp if (columnNum > 0 && columnNum <= 26) { // Write the data to that column number rowData[columnNum] = value; // Value in column X //result = JSON.stringify(value); result += 'Written on column ' + param + ', '; } else { result = "unsupported parameter"; } } Logger.log(JSON.stringify(rowData)); // Write new row below var newRange = sheet.getRange(newRow, 1, 1, rowData.length); newRange.setValues([rowData]); } // Return result of operation Logger.log(result); return ContentService.createTextOutput(result); } /* * Remove leading and trailing single or double quotes */ function stripQuotes( value ) { return value.replace(/^["']|['"]$/g, ""); }