【问题标题】:"ScriptError: Authorisation is required to perform that action." when running google.script.run from Library“ScriptError:需要授权才能执行该操作。”从库运行 google.script.run 时
【发布时间】:2020-11-14 04:15:12
【问题描述】:

问候,

我发现了几个关于这个错误的问题: "ScriptError: Authorisation is required to perform that action." 但我找不到与我的问题有关的问题。

我要做的是使用 google.script.run 从 .html 文件调用函数 .gs 文件,其中两个文件都在库中。参考this answer、this answer和this bug report,我在使用该库的脚本中创建了“包装函数”,但仍然未能完成执行。

这就是我所做的:

.html 在库中:

<html>

<head>
  <script>
    function onFailure(error) {
      console.log("ERROR: " + error);
    }

    function myfunc() {
      console.log("HERE");
      google.script.run.withFailureHandler(onFailure).callLibraryFunction('LibraryName.test', ['test123']);
    }
  </script>
</head>

<body>
  <button onclick="myfunc()">CLICK</button>
</body>

</html>

库中的.gs

function test(x){
  Logger.log(x);
}

.gs 在使用库的脚本中:

function callLibraryFunction(func, args) {
  var arr = func.split(".");

  var libName = arr[0];
  var libFunc = arr[1];

  args = args || [];

  return this[libName][libFunc].apply(this, args);
}

控制台记录HERE,但随后记录ERROR: ScriptError: Authorisation is required to perform that action.,而不是预期的输出test123。

注意:HTML 用于表格中的自定义无模式对话框,不适用于 Web 应用程序。

我真的希望有人可以帮助我。提前谢谢你。

【问题讨论】:

  • 您似乎没有在库中使用 doGet() 函数来访问库的 HTML 部分。
  • 我需要doGet() 吗?因为我没有从 Web 应用程序 URL 访问它,我只是在表格中使用 HTML 进行自定义对话框,而不是重定向到页面。 (很抱歉,我之前忘记提及这一点,我会更新问题。)但是,我确实从 HTML 文件创建了一个 HtmlOutput [例如:.createOutputFromFile("htmlfile")],并且 HTML 呈现并运行,因为控制台记录了 HERE正如我在问题中提到的那样。
  • 我明白了。在从对话框执行此操作之前,您是否尝试过从脚本编辑器手动运行一次脚本?见here。
  • 我做了,控制台记录了预期的输出test123。这意味着它可以在没有对话框的情况下直接使用它。此外,所有需要的权限/范围都已经过验证。我什至尝试通过编辑清单文件appscript.json 使范围更通用。但是,仍然没有运气。
  • 1.您的代码库是否包含任何可能导致错误的触发器? 2. 您在清单中提供的范围是什么? 3. 看看this。

标签: javascript google-apps-script google-sheets modeless-dialog


【解决方案1】:

您需要授予对库“LibraryName”的访问权限作为您的 Gmail 帐户中的授权应用程序,就像您授予对调用脚本的访问权限一样。我猜你已经在你的库中调用了HtmlService.createHtmlOutputFromFile(...) 方法。这需要更多的授权。您需要授予此权限。您可以做的是在具有HtmlService.createHtmlOutputFromFile(..) 的库中创建一个临时函数。从脚本编辑器运行它并出现授权要求窗口。继续授予访问权限...

【讨论】:

    猜你喜欢
    • 2013-04-29
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2021-06-03
    • 2012-07-10
    相关资源
    最近更新 更多