我正在使用Google Apps脚本。我有我编写的应用脚本,应该由特定工作表上的onEdit事件执行。
onEdit.gs
function onEdit(e) {
var syokuninIchiran = new SyokuninIchiran();
syokuninIchiran.syncTable();
}
通过在页面上进行编辑执行上述操作时,会发生此错误:
You do not have permission to call openById. Required privilege: https://www.googleapis.com/auth/spreadsheets
但是,当从Google Apps脚本开发窗口触发脚本时,它没有问题。我通过使测试函数如下来调用相同的代码:
function test(){
var syokuninIchiran = new SyokuninIchiran();
syokuninIchiran.syncTable();
}
此问题可能有问题吗?电子表格的所有者不是我的。我的帐户有权编辑,如下图所示。
Try1:我试图将范围手动添加到清单文件(appsscript.json
)。并且我批准了授权。但是,什么都没有改变。它仍然具有相同的错误消息。
{
"oauthScopes": [
"https://www.googleapis.com/auth/sqlservice",
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/script.external_request"
]
}
简单触发器无法打开与其绑定的文件以外的文件。为此,您需要使用可安装的触发器。
根据Simple Trigger restrictions上的文档:
由于简单触发器会自动触发,而无需征求用户授权,因此它们受到一些限制:
他们可以修改绑定到的文件,但不能访问其他文件,因为这需要授权。
因此必须使用可安装的触发器。
跟随Edit > Current project's triggers
菜单项,它将在G Suite开发人员中心中打开一个新页面。单击右下角的+ Add Trigger
按钮并按如下所示设置触发设置:
onEdit
Head
From Spreadsheet
On Edit
然后按保存。这将增加编辑触发器的功能范围。
希望对您有帮助!