我正在使用Discord机器人将信息读/写到单个Google Spreadsheet,因此,我一直在尝试学习文档记录薄的Spreadsheet API。我已经弄清楚了如何一一追加,读取和删除行。我正在尝试通过将其单元格值更改为vals[1]
中的值来编辑行。
这使用了Google Spreadsheets API v4和Node.js v10.13.0。这个sheets.spreadsheets.update
方法结构是直接从Google的Node.js示例中复制的。当然,我只为所有参数插入了自己的值。我已经到处寻找我遇到的特定类型的错误。我还仔细检查了API可能存在的问题。
vals = [number, [cell1, cell2, undefined]];
sheets.spreadsheets.values.update({
spreadsheetId: config.spreadsheet,
range: sheetNames[sheet] + '!A' + vals[0] + ':B',
resource: vals[1],
valueInputOption: 'RAW',
}, (err, result) => {
if (err) {
console.log(err);
} else {
message.channel.send('**Successful `edit` request!**')
//other code
}
});
很明显,代码在请求中引发了错误。它应该顺利进行到“成功编辑请求”消息。
{ Error: Invalid JSON payload received. Unknown name "": Root element must be a message.
at Gaxios.<anonymous> ( [other files]/node_modules/gaxios/build/src/gaxios.js:73:27)
at Generator.next (<anonymous>)
at fulfilled ([other files] /Personal Projects/siracha/node_modules/gaxios/build/src/gaxios.js:16:58)
at process._tickCallback (internal/process/next_tick.js:68:7)
答案 0 :(得分:2)
如果我的理解是正确的,那么该修改如何?请为resource
使用一个对象,为values
使用二维数组
resource: vals[1],
resource: {values: [vals[1]]},
range: sheetNames[sheet] + "!A" + vals[0],
代替range: sheetNames[sheet] + "!A" + vals[0] + ":B",
。如果这不是解决方案,我深表歉意。