我正在尝试使用我的第一个Google表格应用脚本。我正在尝试创建一个自定义函数(通过绑定脚本)来检查它所在的单元是否受到保护。如果它受到保护,它应该将单元格的值更改为(至少现在)保护类型。
我可以在文档中成功运行简单的演示脚本:
function DOUBLE(input) {
return input * 2;
}
但是当调用Range :: protect时,我可能会出错
"You do not have permission to call protect"
这是函数
function isProtected() {
var range = SpreadsheetApp.getActiveRange();
var protection = range.protect();
return protection.getProtectionType();
}
我还获得了与其他一些功能相同的权限错误,例如Session.getEffectiveUser()
。
我认为,因为这是一个绑定的自定义函数,我是(唯一)表单所有者,我可以调用这些方法。我错过了什么?感谢。
我已经尝试将脚本复制粘贴到新工作表的脚本编辑器中,因为有些帖子很幸运,但对我来说没有运气。
答案 0 :(得分:5)
自定义功能匿名运行,因此隐含的后果是他们无法执行任何需要授权的操作。
更改range protection
需要授权,这就是为什么你不能使用它并得到你得到的消息......
getEffectiveUser()
的情况相同,它也需要授权。
与大多数其他类型的应用程序脚本不同,自定义功能永远不会问 用户授权访问个人数据。因此,他们可以 仅调用无法访问个人数据的服务