【问题标题】:Google apps script error: "You do not have permission to call protect" [duplicate]谷歌应用程序脚本错误:“您无权调用保护”[重复]
【发布时间】:2016-04-01 20:37:14
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    自定义函数匿名运行,因此隐含的结果是他们不能做任何需要授权的事情

    更改range protection 需要授权,这就是为什么您无法使用它并获取您收到的消息...

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

    Reference in docs

    与大多数其他类型的 Apps 脚本不同,自定义函数从不询问 用户授权访问个人数据。因此,他们可以 仅调用无权访问个人数据的服务

    【讨论】:

    • 谢谢!显然,我对文档的阅读不够深入。我将尝试另一种方法来获得我需要的东西,即绑定到工作表并且不需要用户加载插件的东西。
    猜你喜欢
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多