在我的脚本中,我从电子表格中阅读数据,并创建一个基于时间的触发器,以便在特定时间使用某些数据发出POST请求。
问题是,我找不到任何方法将数据传递给触发器调用的函数。GoogleAppScript文档提供的只是命名要调用的函数的功能,但无法传递参数。
var triggerDay = new Date(2012, 11, 1);
ScriptApp.newTrigger("makePostRequest")
.timeBased()
.at(triggerDay)
.create();
有谁知道我如何传递makePostRequest
参数,以便函数将执行所需的数据?
5条答案
按热度按时间fykwrbwg1#
这是可能的,但需要多个步骤。这里最重要的是event objects(由@St3ph提到)。
如果您也将脚本属性用于其他值,则可能必须嵌套触发器值。
此外,您可能必须使用脚本锁来防止脚本属性的并发修改。
pengsaosao2#
从触发器启动函数时不能传递参数。
您必须将此信息存储在某个地方,以便脚本能够找到它。例如,你说我知道你在电子表格中有一些数据,你可以把这些信息放在电子表格中。该函数将管理查找适当信息的方式,具体取决于它被触发的时间。
斯特凡
kuhbmx9i3#
我不确定它是否能解决您的特定问题,但我发现的最方便的解决方法是将带参数的函数 Package 在不带参数的函数中,然后从您在脚本顶层设置的静态变量中获取参数。
您仍然需要在脚本中设置值,但至少可以保持逻辑分离,以便可以使用具有不同值的基函数。
guykilcj4#
这个怎么样?
plicqrtu5#
triggerDay
是一个Trigger,它有唯一的id。makePostRequest
的第一个参数是时间驱动的事件,它有未记录的属性“triggerUid”,所以正如@St3ph所说,你需要以某种方式存储一对“uniqueid”和“parameters”,并通过“triggerUid”从存储中获取它