Hi
Don't know if I can ask this question here, it is not directly a arduino question
Case:
In my URL to google script I make an url like
/https://script.google.com/macros/s/7HjpuEuUR/exec?temperature=30&humidity=50
temp and humidity is populated successfully to google sheet.
In my json code on google sheet, that works with temperature and humidity, and is working i have:
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]);
switch (param) {
case 'temperature': //Parameter
rowData[1] = value; //Value in column
result = 'Written on column B';
break;
case 'humidity': //Parameter
rowData[2] = value; //Value in column C
result += ', Written on column C';
break;
default:
result = "Unsupported parameter";
}
To add one more parameter I use this URL
My extended case is to add weight, and use this url:
/https://script.google.com/macros/s/7HjpuEuUR/exec?temperature=30&humidity=50&weight=41
and this code with a new case for weight parameter:
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]);
switch (param) {
case 'temperature': //Parameter
rowData[1] = value; //Value in column
result = 'Written on column B';
break;
case 'humidity': //Parameter
rowData[2] = value; //Value in column C
result += ', Written on column C';
break;
case 'weight': //Parameter
rowData[3] = value; //Value in column D
result += ', Written on column D';
break;
default:
result = "Unsupported parameter";
}
Result is:
empty weight:
and error code returned is:
Anyone that can give me a hand?
All code:
//-----------------------------------------------
/**
* Function doGet: Parse received data from GET request,
get and store data which is corresponding with header row in Google Spreadsheet
*/
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 = 'xxxxxx **secret** xxxxxxxxxxxx'; // 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]);
switch (param) {
case 'temperature': //Parameter
rowData[1] = value; //Value in column
result = 'Written on column B';
break;
case 'humidity': //Parameter
rowData[2] = value; //Value in column C
result += ', Written on column C';
break;
case 'weight': //Parameter
rowData[3] = value; //Value in column D
result += ', Written on column D';
break;
default:
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
return ContentService.createTextOutput(result);
}
//Remove leading and trailing single or double quotes
function stripQuotes( value ) {
return value.replace(/^["']|['"]$/g, "");
}