【发布时间】:2021-04-10 20:29:14
【问题描述】:
我在容器绑定到 Google 表格文件的 Google Apps 脚本顶部有代码:
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Payroll')
.addItem('Add shoot days', 'copyCallSheets')
.addItem('Update Call Sheet/Crew List', 'updateDocs')
.addItem('Create Daily Time Sheet', 'sendDailyTimeSheets')
.addItem('Collect Out Times from DTS', 'collectOuttimez')
.addItem('Process Timecards', 'processTimecardz')
.addSeparator()
.addItem('Report Issue', 'sendErrorReport')
.addToUi();
}
但是,当我打开文件时,onOpen() 简单触发器失败,并且我收到以下错误消息:
例外:您无权调用 DriveApp.getFileById。所需权限:(https://www.googleapis.com/auth/drive.readonly || https://www.googleapis.com/auth/drive) 功能未知
如果我通过在脚本中手动执行它们来调用它们,我在菜单中调用的任何函数都可以正常工作,但我希望能够让用户从 UI 调用它们。
这是错误的截图:
【问题讨论】:
-
请添加minimal reproducible example。附言
onOpen函数没有失败,错误来自使用DriveApp的语句。你在使用全局变量吗?您的项目使用的是默认 GCP 项目还是标准 GCP 项目? -
您的脚本是否绑定到 GCP 项目?如果您查看
appsscript.json文件,您是否有任何oauth2scopes? -
我正在使用全局变量...我没有对 GCP 做过任何事情,所以我假设它使用的是默认值?我不确定如何访问 appscript.json 文件?
-
我不确定你所说的“全局变量”是什么意思,或者至少,为什么它在这里相关。您应该阅读更多关于 GCP 项目以及它们如何与 Apps 脚本项目联系的内容here。
-
谢谢,@RafaGuillermo。全局变量评论是对 Rubén 的问题的回应。阅读您发送的文档,我使用的是默认 GCP 项目。根据该文档,没有看到我需要使用标准 GCP 项目的任何理由,但也许我遗漏了一些东西
标签: google-apps-script google-sheets