Google sheet. Json, read variables from ESP8266 made URL

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";
      }

image

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:

image

and error code returned is:

image

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, "");
}

Solution

For each time java script changes deploy a new version

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.