ScriptError using Google Apps Script Execution API



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

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

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

The API returned an error: Error: ScriptError

我还确保脚本与我用于使用 Google API 进行身份验证的项目相关联。

有没有人对我可以做些什么来调试/解决此问题有任何建议?该错误非常普遍,以至于我不确定在哪里查找。

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

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

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

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

编辑:随着信息的更新,我仔细观察了一下,看到您正在返回一个非基本类型。具体来说,您要返回一个工作表对象。

应用程序脚本中的基本类型类似于 JavaScript:字符串、数组、对象、数字和布尔值。这 执行 API 只能获取并返回与这些对应的值 基本类型 -- 更复杂的应用程序脚本对象(如文档或 表)不能由 API 传递。

https://developers.google.com/apps-script/guides/rest/api

在您的帐户"类"中

this.report = spreadsheet.getSheetByName(data.reportSheet);

旧答案:

在此上下文中,"data.business_exp"将为空。您需要从某个地方加载数据。每次调用脚本时,都会创建脚本的新实例。在执行链的末端,它将被销毁。存储为全局对象的任何数据都将丢失。您需要将该数据保存到永久位置,例如脚本/用户属性,并在每次脚本执行时重新加载。

https://developers.google.com/apps-script/reference/properties/

相关内容

  • 没有找到相关文章

最新更新