如何从另一个项目运行谷歌应用程序脚本功能

时间:2015-02-08 05:24:06

标签: google-apps-script

我有几张功能绑定到电子表格的工作表。每个电子表格都有自己的功能,并使用SpreadsheetApp.getUi来运行html服务。我想在主电子表格项目的所有工作表中启动函数调用?可能吗?比如获取电子表格项目的句柄并在该项目中运行脚本?

2 个答案:

答案 0 :(得分:4)

您有两种选择:

  1. 将您的脚本发布为库并订阅每个脚本项目中的每个脚本。
  2. 将您的脚本发布为具有特定功能的Web应用程序,作为单独的伪webhook。有点像分布式API。
  3. 各有利弊。也不是关于可维护性的。

    库选项将提供代码完成,而Web应用程序选项将启用(如果您愿意)您以异步方式运行代码。

    两者都有不同的速度惩罚。启用库的脚本速度较慢,如文档中所述。由于urlfetch延迟,网络应用会变慢。

    库函数将使用主机脚本中允许的运行时,而Web应用程序将扩展运行时和一些配额。

    文档:

    1. Publish your scripts as a library
    2. Running apps script as an endpoint

答案 1 :(得分:0)

在我看来,使用库是保护代码的最快,最简单的方法。 为此,您需要:

  • 1个电子表格或任何包含代码的Google文档-SCRIPT A

  • 您作为库发布的1个独立脚本SCRIPT B。

  • 在SCRIPT A的编辑器中-Safe Args 您添加库密钥

  • 在SCRIPT A代码中,您可以调用SCRIPT B的功能

    function callFunctionOfScriptB(){   LibraryIdentifier.functionNameinScriptB() }

  • 当您在弹出窗口的“标识符”列中单击“资源+库”时,您会找到LibraryIdentifier

  • functionNameinScriptB =您要在脚本B中调用的函数的名称