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).