node.js - Error in creating request to Google Spreadsheet API: field 'values' could not be found -


this code:

var sheets = google.sheets('v4'); sheets.spreadsheets.values.update( {   auth: auth,   spreadsheetid: '1tsyo5xfh1czlf6xd_q1ciuqy9kdo_rwygdrwlanbduc',   range: 'sheet1!a1:d5',   values: [   ["item", "cost", "stocked", "ship date"],   ["wheel", "$20.50", "4", "3/1/2016"],   ["door", "$15", "2", "3/15/2016"],   ["engine", "$100", "1", "30/20/2016"],   ["totals", "=sum(b2:b4)", "=sum(c2:c4)", "=max(d2:d4)"]   ], }, function (err, response) {   if (err) {     console.log(err);     return res.status(400).send({       message: errorhandler.geterrormessage(err)     });   }   console.log(response); }); 

i'm doing example google doc

but i'm getting error:

{ [error: invalid json payload received. unknown name "values": cannot bind query parameter. field 'values' not found in request message.] code: 400, errors:

[ { message: 'invalid json payload received. unknown name "values": cannot bind query parameter. field \'values\' not found in request message.', domain: 'global', reason: 'badrequest' } ] } 

rest of code same docs , i'm using reading spreadsheet , working fine.

ok figured out per: http://google.github.io/google-api-nodejs-client/7.0.0/sheets.html

you need edit code read follows:

var sheets = google.sheets('v4'); sheets.spreadsheets.values.update( {   auth: auth,   spreadsheetid: '1tsyo5xfh1czlf6xd_q1ciuqy9kdo_rwygdrwlanbduc',   range: 'sheet1!a1:d5',   valueinputoption: 'user_entered',   resource: {      values: [       ["item", "cost", "stocked", "ship date"],       ["wheel", "$20.50", "4", "3/1/2016"],       ["door", "$15", "2", "3/15/2016"],       ["engine", "$100", "1", "30/20/2016"],       ["totals", "=sum(b2:b4)", "=sum(c2:c4)", "=max(d2:d4)"]   ]}, }, function (err, response) {   if (err) {     console.log(err);     return res.status(400).send({       message: errorhandler.geterrormessage(err)     });   }   console.log(response); }); 

you can put in 'raw' instead of 'user_entered' valueinputoption attribute if want values inputted spreadsheet literally (instead of being formatted if if enter them gui).