自定义功能权限

时间:2013-04-08 00:29:04

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

我正在尝试为Google表格编写自定义函数,但我遇到了左右许可错误。为了开始,我将其输入左上角的单元格:"=testFunction()"。在该函数中,我尝试突出显示并根据用户选择一行,并遇到以下问题:

  1. 我无权调用Session.getActiveUser()方法,因此根据访问该文档的用户,我无法执行任何操作。此外,getUrl函数不会返回实际的URL,因此在末尾添加类似“#Jeff”的内容将不起作用。注意:我最终解决了这个问题,因为令我惊讶的是,Spreadsheet.getViewers功能正常工作。
  2. 我无权运行Spreadsheet.setActiveSelection()功能,因此无法选择一行。
  3. 如果我从单元格A运行该函数,我无权更改单元格B的背景。这意味着我需要将我的破碎高亮显示功能放在我想要更改颜色的每个单元格中。
  4. 查看如何做某事,测试它以及观看四次中有三次出现的权限错误令人沮丧。

    考虑到我是本文档的所有者,有没有办法改变我的许可?

    如果没有,是否有任何关于我可以运行哪些功能的文档?

2 个答案:

答案 0 :(得分:1)

不允许自定义函数访问特定于用户的服务

答案 1 :(得分:0)

我注意到,单元格中的自定义函数无法执行auth-required方法,但如果让脚本被触发,则可以运行脚本。

示例:我编写了与我的工作表关联的脚本函数。

function getTheUser() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  sheet.getRange('a1').setValue(Session.getActiveUser());
}

如果我把它放在一个单元格中

=getTheUser()

单元格标有“错误:您无权调用getActiveUser(第9行,文件”代码“)”

但是如果我转到项目的脚本并为该函数创建一个触发器,那么只要满足触发条件,该函数就会运行正常。

我的计划是使用触发器来运行auth-required函数。