按照这些指南https://developers.google.com/apps-script/guides/rest/quickstart/target-script和https://developers.google.com/apps-script/guides/rest/quickstart/nodejs,我尝试在节点中使用Execution API来返回Google电子表格中的一些数据。
我已将脚本ID设置为Apps脚本文件的Project Key。我还验证了在脚本编辑器中运行该函数是否成功。
但是,当使用节点本地运行脚本时,我收到此错误:
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));
答案 0 :(得分:4)
似乎我没有要求合适的范围。 nodejs示例包括'https://www.googleapis.com/auth/drive'
,但我还需要在'https://www.googleapis.com/auth/spreadsheets'
数组中包含SCOPES
。似乎错误消息ScriptError
在这里没有很多信息。
为了找到您需要的范围,请转到脚本编辑器>文件>项目属性>作用域。请记住删除旧凭据~/.credentials/old-credential.json
,以便脚本请求新凭据。
答案 1 :(得分:0)
编辑:随着信息的更新,我仔细看了一下,发现你正在返回一个非基本类型。具体来说,您将返回工作表对象。
Apps脚本中的基本类型与基本类型相似 JavaScript:字符串,数组,对象,数字和布尔值。该 执行API只能获取和返回与这些相对应的值 基本类型 - 更复杂的Apps脚本对象(如文档或 Sheet)不能通过API传递。
https://developers.google.com/apps-script/guides/rest/api
在您的帐户“班级”中
page2
https://developers.google.com/apps-script/reference/properties/