在Google表格脚本编辑器和“ callById()”中出现“您无权调用ScriptApp.newTrigger”错误

时间:2019-12-13 18:28:28

标签: google-apps-script google-sheets google-sheets-formula

我在执行Google表格中的脚本时遇到问题。

本来我已经为功能安装了触发器,但是我想进行复制但触发器不见了。我在G Suite开发人员中心中设置了可安装的触发器,现在尝试在Google表格的脚本编辑器中创建触发器,但是遇到权限问题。

我知道我可以在清单文件中编辑auth范围,但是它也没有用。

function onOpen(e){
var ssId = SpreadsheetApp.getActiveSpreadsheet().getId();

ScriptApp.newTrigger('makeDropDownMenu')
    .forSpreadsheet(ssId)
    .onOpen()
    .create();

}

上面是我要执行的代码,上面写着“您没有调用ScriptApp.newTrigger的权限。所需的权限:https://www.googleapis.com/auth/script.scriptapp     在createTimeDrivenTriggers”

我该如何在脚本中安装触发器?

2 个答案:

答案 0 :(得分:0)

您可以与此安装触发器。当您打开点差时,转到“我的菜单”,然后单击“创建触发器”。

function onOpen(){
  SpreadsheetApp.getUi().createMenu("My Menu")
  .addItem("Create Trigger","createTrigger")
  .addToUi();
}

function createTrigger() {
  var ssId = SpreadsheetApp.getActiveSpreadsheet().getId();
  ScriptApp.newTrigger('makeDropDownMenu')
    .forSpreadsheet(ssId)
    .onOpen()
    .create();
}

但是,如果您只是创建菜单而已,那么您可以像上面一样在onOpen()简单触发器中进行操作。如果我错过了你的观点,请提供更多指导。

答案 1 :(得分:0)

这类错误与您拥有的oauth范围有关。对于几乎所有范围,如果未在清单文件[1]中手动设置“ oauthScopes”字段,Apps脚本都会自动设置所需的oauth范围。您可以尝试从清单中删除“ oauthScopes”字段,并且Apps脚本可能会添加所需的作用域,或手动在清单中添加它们,如下所示:

  "oauthScopes": [
    "https://www.googleapis.com/auth/spreadsheets",  //This one you should already have it
    "https://www.googleapis.com/auth/script.scriptapp" //Thi is the one that was missing 
  ]

[1] https://developers.google.com/apps-script/manifest/