node.js - 使用 Google Apps 脚本执行 API 时出现 ScriptError

标签 node.js google-apps-script google-apps-script-api

遵循这些指南 https://developers.google.com/apps-script/guides/rest/quickstart/target-scripthttps://developers.google.com/apps-script/guides/rest/quickstart/nodejs ,我正在尝试使用 Node 中的执行 API 返回 Google 电子表格中的一些数据。

我已将脚本 ID 设置为 Apps 脚本文件的项目 key 。我还验证了在脚本编辑器中运行该函数是否成功。

但是,当使用 Node 在本地运行脚本时,我收到此错误:

API 返回错误:错误:ScriptError

我还确保该脚本与我用来通过 Google API 进行身份验证的项目相关联。

有人对我可以做什么来调试/解决这个问题有任何建议吗?该错误是如此普遍,以至于我不知道该去哪里查找。

更新:我在此 JSBin 中包含了代码的副本(year 函数是入口点) https://jsbin.com/zanefitasi/edit?js

更新2:该错误似乎是由包含此行引起的 var电子表格 = SpreadsheetApp.open(DriveApp.getFileById(docID));

最佳答案

看来我没有请求正确的范围。 Nodejs 示例包括 'https://www.googleapis.com/auth/drive',但我还需要在 SCOPES 数组中包含 'https://www.googleapis.com/auth/spreadsheets'。看来错误消息 ScriptError 这里的信息不是很丰富。

为了找到您需要的范围,请转到“脚本编辑器”>"file">“项目属性”>“范围”。请记住删除旧凭据 ~/.credentials/old-credential.json 以便脚本请求新的凭据。

关于node.js - 使用 Google Apps 脚本执行 API 时出现 ScriptError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35703787/

相关文章:

javascript - 用于从网站中提取文本的 Google 应用程序脚本

javascript - 在javascript中获取gmail邮件正文时删除html格式

node.js - 运行 npm "prefix -g is not recognized as an internal or external command"时出错

node.js - 无法在centos 6.5 64位上使用npm安装node-xmpp-client

javascript - 在 Node REPL 中动态重新加载模块

node.js - Node js ('child_process' ).exec 不保存命令中创建的文件

javascript - Google 电子表格脚本 - 仅授予对一张工作表的访问权限

google-apps-script - 服务帐户可以调用 Google Apps 脚本执行 API 吗?

c# - Google Apps 脚本执行 API 服务授权每小时失败一次

powershell - 如何授权 GAS 编辑 Google 电子表格的范围