脚本在SpreadsheetApp.openById上失败-需要权限

时间:2019-09-20 09:32:18

标签: google-apps-script oauth triggers google-api google-apps-script-simple-triggers

我有一个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"
}

1 个答案:

答案 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"
  ]
}

注意如何在文件末尾添加范围。请不要犹豫,要求对此答案进行进一步的澄清。

相关问题