创建对 Google 电子表格 API 的请求时出错:找不到字段 'values'

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

这是我的代码:

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", ".50", "4", "3/1/2016"],
  ["Door", "", "2", "3/15/2016"],
  ["Engine", "0", "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);
});

我正在通过示例从 Google Doc

但我收到错误消息:

{ [错误:收到无效的 JSON 负载。未知名称 "values": 无法绑定查询参数。在请求消息中找不到字段 'values'。] 代码:400, 错误:

[ { message: 'Invalid JSON payload received. Unknown name "values": Cannot bind query parameter. Field \'values\' could not be found in request message.',
domain: 'global',
reason: 'badRequest' } ] }

其余代码来自同一文档,我用它来读取电子表格,一切正常。

好的,我按照以下方式计算出来:http://google.github.io/google-api-nodejs-client/7.0.0/sheets.html

您需要将代码修改为如下内容:

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", ".50", "4", "3/1/2016"],
      ["Door", "", "2", "3/15/2016"],
      ["Engine", "0", "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);
});

如果您希望将值按原样输入电子表格(而不是像格式化一样如果您将它们输入 GUI,它们就会是)。