javascript - “未知名称”:必须是根元素。Node.js Google 电子表格出错
问题描述
我正在使用不和谐的机器人将信息读/写到单个 Google 电子表格,因此我一直在尝试学习文档记录不佳的电子表格 API。我已经弄清楚如何一一追加、读取和删除行。我正在尝试通过将其单元格值更改为vals[1]
.
这使用 Google 电子表格 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)
解决方案
- 您想使用 googleapis 和 Node.js 来放置值。
- 您已经能够使用 Sheets API 放置和获取值。
如果我的理解是正确的,那么这个修改呢?请使用对象resource
并使用二维数组values
从:
resource: vals[1],
至:
resource: {values: [vals[1]]},
笔记:
- 在您的价值观中,我认为您可以使用
range: sheetNames[sheet] + "!A" + vals[0],
而不是range: sheetNames[sheet] + "!A" + vals[0] + ":B",
.
参考:
如果这不是解决方案,我很抱歉。
推荐阅读
- highcharts - 使用 Highcharts 时找不到 Json 文件
- excel - 使用时间戳保存时出现类型不匹配错误
- python - 如何在 Pandas 中展平深度嵌套的 JSON
- python - 在 Python 中使用 for 循环创建嵌套字典
- excel - 通过excel保存文本文件后从csv恢复编码
- c++ - C++ 初始化类型 - 实际使用
- c# - 使用 Ajax.BeginForm 调用 HttpPost 不起作用
- android - 在 android build.gradle 中对两个不同的 flavorDimensions 使用相同的产品风味
- python - 有没有办法编辑按钮属性?Discord.py,不和谐组件
- amazon-web-services - 我们可以使用 AWS Lambda 编写 C# 控制台应用程序和 ASP.NET Core MVC Web 应用程序吗