我有一个onOpen函数,可在电子表格中创建自定义菜单。它已经运行了一年多,但是几天前它停止了工作。
当我查看执行记录时,我得到:
“执行失败:您无权调用SpreadsheetApp.openById。所需权限:https://www.googleapis.com/auth/spreadsheets”
这失败/与下面的代码行有关:
var ss = SpreadsheetApp.openById("myID")
我已经检查了启用了哪些API,并且启用了工作表,这反映在.json文件中。我在脚本中的任何地方都没有@OnlyCurrentDoc。我已经重置了该脚本帐户的权限,再次运行了该功能并允许了权限,但是仍然无法在打开时创建菜单。
我的.json文件:
{
"timeZone": "Europe/London",
"dependencies": {
"enabledAdvancedServices": [{
"userSymbol": "Sheets",
"serviceId": "sheets",
"version": "v4"
}]
},
"exceptionLogging": "STACKDRIVER"
}
答案 0 :(得分:-1)
发生此错误是因为代码没有足够的权限来运行该方法。 openById
方法需要一个或多个this范围。您的清单.JSON应该如下所示:
{
"timeZone": "Europe/London",
"dependencies": {
"enabledAdvancedServices": [{
"userSymbol": "Sheets",
"serviceId": "sheets",
"version": "v4"
}]
},
"exceptionLogging": "STACKDRIVER",
"oauthScopes": [
"https://www.googleapis.com/auth/spreadsheets"
]
}
注意如何在文件末尾添加范围。请不要犹豫,要求对此答案进行进一步的澄清。