【问题标题】:Can One Script Trigger a Function In Another Script?一个脚本可以触发另一个脚本中的函数吗?
【发布时间】:2015-02-12 06:00:22
【问题描述】:

我需要找到一种方法让一个 Google Apps 脚本文件触发另一个脚本文件中的函数。

我的目标是拥有一个主脚本,它复制另一个脚本文件并创建一个新文件(这已经完成),然后在新文件中触发一个函数。这可能吗?


我正在创建一系列完全自动化的工作申请脚本,我需要一个主脚本来创建其他每个脚本。目前,每个工作申请都有这样的文件结构:

-文件夹 --Step 1(简历上传脚本文件) --Step 2(电子表格附有用于存储Step 1数据的脚本文件) --Step 3(附有脚本文件的面试安排表) --Step 4(附有脚本文件的技能测试电子表格) --Step 5(技能测试文件上传脚本文件)


我需要什么:

-我的主脚本需要能够为不相关的脚本文件 1-5 创建触发器,如果​​我可以动态地创建新函数并将其附加到这些文件中,我也会更喜欢它。我不能将所有代码都放在一个文件中,因为每个工作申请都需要一个包含不同问题和不同工作描述的独特表格。

【问题讨论】:

    标签: google-apps-script triggers


    【解决方案1】:

    我假设您的意思是完全不同的项目文件中的脚本文件,甚至是不同的 Google Drive?不同脚本文件中的脚本,在同一个项目中,只需调用函数名即可触发。 Apps 脚本不需要在另一个脚本文件中包含一个脚本文件。所有 GS 脚本文件都可用于其他所有 GS 脚本文件。

    可以将 Apps 脚本项目用作“独立”内容服务应用程序并获得返回值。必须使用 HTTPS GET 或 POST 请求调用 Apps 脚本项目。例如,您可以使用来自客户端或服务器端代码的 AJAX 调用来实现。

    Apps 脚本有一个urlFetchApp.fetch 方法,可以发出 GET、PUT、POST 或 DELETE 请求。

    Google Documentation - urlFetchApp

    原始 HTTPS 调用只能触发 doGet()doPost() 函数。但是这些函数可以调用特定的函数,然后发送返回。

    Stackoverflow answer - return from a specific function

    还可以创建一个可在多个脚本中重复使用的“库”。

    Google Documentation - Libraries

    您可以使脚本在工作表或文档打开时自动运行。因此,如果新的 Apps 脚本位于工作表中,并且工作表具有 onOpen() 函数,则该函数可能会以这种方式被触发。但是你需要一种方法来打开工作表或文档。

    在浏览器中调用独立应用程序脚本 URL 时自动运行的 doGet() 函数可以采用 URL 搜索字符串参数。因此,您可以在调用 Apps Script 的 URL 中放置一个搜索字符串参数,然后 Apps Script 可以根据搜索字符串的值做一些事情。例如,如果您想在应用首次运行时根据用户选择的某些条件打开主页以外的其他内容。

    【讨论】:

      【解决方案2】:

      您可以这样做,但不安全。

      您可以通过在网络上公开一个函数来触发它。你可以使用参数告诉它运行哪个函数。

      https://developers.google.com/apps-script/guides/content

      【讨论】:

        猜你喜欢
        • 2023-02-08
        • 2012-06-05
        • 2019-01-31
        • 2014-03-09
        • 2011-12-09
        • 1970-01-01
        • 1970-01-01
        • 2015-11-26
        • 2017-11-09
        相关资源
        最近更新 更多