Google apps script 拥有;您没有调用ScriptApp.newTrigger的权限;Google Sheets脚本编辑器中出现错误,并且;callById();

Google apps script 拥有;您没有调用ScriptApp.newTrigger的权限;Google Sheets脚本编辑器中出现错误,并且;callById();,google-apps-script,google-sheets,google-sheets-formula,Google Apps Script,Google Sheets,Google Sheets Formula,我在谷歌表单中执行脚本时遇到问题 我最初为我的函数安装了触发器,但我想复制,但触发器不见了。我在G Suite Developer Hub中设置了可安装的触发器,现在我正试图在Google Sheets的脚本编辑器中创建触发器,但我遇到了权限问题 我知道我可以在清单文件中编辑auth范围,但它也不起作用 function onOpen(e){ var ssId = SpreadsheetApp.getActiveSpreadsheet().getId(); ScriptApp.newTrigg

我在谷歌表单中执行脚本时遇到问题

我最初为我的函数安装了触发器,但我想复制,但触发器不见了。我在G Suite Developer Hub中设置了可安装的触发器,现在我正试图在Google Sheets的脚本编辑器中创建触发器,但我遇到了权限问题

我知道我可以在清单文件中编辑auth范围,但它也不起作用

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

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

}
上面是我要执行的代码,上面写着“您没有调用ScriptApp.newTrigger的权限。所需权限: 在createTimeDrivenTriggers”


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

您可以使用此脚本安装触发器。打开排列后,转到“我的菜单”并单击“创建触发器”


但是如果你只是创建了一个菜单,什么也不做,那么你就可以像我上面所做的那样,在一个onOpen()简单的触发器中完成。如果我没有理解你的观点,请提供更多的指导。

这类错误与您拥有的oauth作用域有关。对于几乎所有的作用域,如果不在清单文件[1]中手动设置“oauthScopes”字段,应用程序脚本会自动设置所需的oauth作用域。您可以尝试从清单中删除“oauthScopes”字段,应用程序脚本可能会添加您需要的范围,或者手动将其添加到清单中,如下所示:

  "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]

您是电子表格的所有者吗?请发布清单文件中的相关详细信息。另外,createTimeDrivenTriggers函数的代码是什么?onOpen()是一个简单的触发器。您不能对需要授权的进程使用简单触发器。我想这应该可以正常工作,但在运行函数“您没有调用ScriptApp.newTrigger()的权限”时仍然会出现错误我不知道为什么我仍然得到许可问题,因为我是文件的所有者。请分享你的脚本多一点。你可以把它添加到问题中。包括makeDropDownMenu()函数,以便我们可以看到您尝试完成的内容的更多上下文。您是否尝试运行onOpen()函数并首先授权脚本?
  "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 
  ]