gpt4 book ai didi

google-apps-script - 复制模板电子表格脚本时,可在谷歌电子表格脚本中安装 onEdit 触发器

转载 作者:行者123 更新时间:2023-12-05 06:44:09 25 4
gpt4 key购买 nike

我有一个复制模板电子表格的脚本 (A)。此模板电子表格中有一个脚本 (B)。模板电子表格和脚本以编程方式成功复制并与他人共享。模板脚本需要使用 onEdit() 触发器来修改第三个电子表格(模板电子表格副本中的编辑将同步到第三个电子表格)。一个简单的触发器没有访问第三个电子表格的权限。我曾尝试使用可安装的触发器,但没有成功让可安装的 onEdit 触发器在复制的电子表格中工作。

我想要实现的是在复制的电子表格中有一个 onEdit 触发器,它不需要单独的授权来写入第三个电子表格。

所有电子表格都归一个用户所有。

我可以使用脚本 A 中的以下代码在脚本 B 中创建可安装的触发器。

createSpreadsheetEditTrigger(id_of_shared_spreadsheet)
...
...
function createSpreadsheetEditTrigger(idss) {
var ss = SpreadsheetApp.openById(idss);
ScriptApp.newTrigger('myOnEdit')
.forSpreadsheet(ss)
.onEdit()
.create();
}

“myOnEdit”函数位于脚本 B 中,其中包含同步到第三个电子表格的代码。编辑复制的电子表格时不会触发此事件。

如果我通过从一个简单的 onOpen() 函数调用它来在脚本 B 中创建可安装触发器,它会因为权限问题而失败。

遵循此处的建议:Execution failed: You do not have permission to call getProjectTriggers我可以创建可安装的触发器和一个调用它的菜单项,以及一个提示用户单击安装并授权触发器的消息框。

是否可以在复制有权编辑第三个电子表格的电子表格时以编程方式安装 onEdit 触发器,而无需用户手动授权触发器?

提前致谢

特雷弗·斯托尔

最佳答案

我刚刚经历过同样的交易,我非常有信心没有一种“简单”的方法可以在没有授权的情况下实现这一点。

虽然您可以将“createSpreadsheetEditTrigger”脚本分配给一个按钮,该按钮仅安装触发器并同时授权所有触发器,但点击 3 次和 5 秒后,它就会按您的预期工作。

关于google-apps-script - 复制模板电子表格脚本时,可在谷歌电子表格脚本中安装 onEdit 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30497242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com