【问题标题】:Custom function permissions [duplicate]自定义功能权限[重复]
【发布时间】:2013-04-08 00:29:04
【问题描述】:

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

  1. 我没有权限调用Session.getActiveUser()方法,所以不能根据用户访问文档做任何事情。此外,getUrl 函数不会返回实际的 URL,因此在末尾添加类似“#Jeff”的内容是行不通的。注意:我最终解决了这个问题,因为令我惊讶的是,Spreadsheet.getViewers 函数有效。
  2. 我没有运行Spreadsheet.setActiveSelection()函数的权限,所以无法选择一行。
  3. 如果我从单元格 A 运行函数,我无权更改单元格 B 的背景。这意味着我需要将损坏的突出显示功能放在每个要更改颜色的单元格中。

查找如何做某事、对其进行测试,然后看到四分之三的权限错误弹出,这令人沮丧。

考虑到我是此文档的所有者,有什么方法可以更改我有权执行的操作吗?

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

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我注意到来自单元格的自定义函数不能执行需要身份验证的方法,但如果您让脚本被触发,您可以让脚本运行。

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

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

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

    =getTheUser()
    

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

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

    我的计划是使用触发器来运行需要身份验证的函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-11
      • 2020-05-17
      • 2017-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多