google-apps-script - 一个脚本可以触发另一个脚本中的函数吗?

标签 google-apps-script triggers

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

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

<小时/>

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

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

<小时/>

我需要什么:

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

最佳答案

我假设您指的是完全不同的项目文件中的脚本文件,甚至是不同的 Google 云端硬盘?不同脚本文件中的脚本,位于同一项目只需调用函数名称即可触发。 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脚本的URL中放置一个搜索字符串参数,然后Apps脚本可以根据搜索字符串值执行某些操作。例如,如果您想在应用程序首次运行时打开主页以外的其他内容,具体取决于用户选择的某些条件。

关于google-apps-script - 一个脚本可以触发另一个脚本中的函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27462042/

相关文章:

Google Apps 脚本上的 Firebase 数据库 secret

database - NHibernate:使用拦截器或触发器审计日志记录?

sql - 使用触发器将 postgres SQL 插入语句拆分为 2 个表

google-apps-script - 如何将触发器限制到特定工作表/选项卡?

javascript - 引用错误: SpreadsheetApp is not defined

javascript - 有没有办法从应用程序脚本中的 graphql API 获取数据?

post - doPost 在 Google 应用脚本中不起作用

sql-server - 如何同时更新和同步数据库表?

tsql - 从插入触发器后调用存储过程

mysql - 用游标触发审计