Google应用脚本错误:“您无权呼叫保护”

时间:2016-04-01 20:37:15

标签: google-apps-script google-sheets custom-function

我正在尝试使用我的第一个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()。 我认为,因为这是一个绑定的自定义函数,我是(唯一)表单所有者,我可以调用这些方法。我错过了什么?感谢。

我已经尝试将脚本复制粘贴到新工作表的脚本编辑器中,因为有些帖子很幸运,但对我来说没有运气。

1 个答案:

答案 0 :(得分:5)

自定义功能匿名运行,因此隐含的后果是他们无法执行任何需要授权的操作

更改range protection需要授权,这就是为什么你不能使用它并得到你得到的消息......

getEffectiveUser()的情况相同,它也需要授权。

Reference in docs

  

与大多数其他类型的应用程序脚本不同,自定义功能永远不会问   用户授权访问个人数据。因此,他们可以   仅调用无法访问个人数据的服务