Google Apps脚本-提交表单时通过打开的表单查询参数

时间:2019-02-16 02:53:23

标签: caching google-apps-script concurrency google-form query-parameters

当前情况

我有一个Web应用,其网址示例如下所示

https://script.google.com/a/domain.com/macros/s/Adlksjflf09_LEg8kdlf9/exec?ID=1

此网络应用程序具有doGet(e)函数,可将其重定向到Google表单URL。使用上面的示例,看起来像这样

https://docs.google.com/forms/d/e/1FAIpQLSfi8jWUK2N4y03N4YYJ9p8Cyr2x06b1C6WgS_TcV98WM_ACtQ/viewform?ID=1

此ID字段未预先填写Google表单中的任何问题。本质上,它是用来保存信息的。

当用户提交表单响应时,我将合并查询参数中的信息以及表单响应,并将其作为有效内容发送到Webhook URL。

我该如何使用CacheService。当用户打开第一个URL时,doGet(e)函数将e.queryString作为Hash存储在缓存中。然后,当用户提交表单时,我可以从缓存中获取信息,并将其与formResponse组合。

我现在遇到的问题与并发性有关。在某些情况下,会有多个用户打开第一个URL。这导致Hash['queryString']在缓存中被覆盖,这不是我想要的。

实际问题

由于我当前的解决方案不支持并发,是否有一种方法可以从表单的onFormSubmit中获取查询参数并将其与表单响应结合起来而无需使用CacheService

据我了解,onFormSubmit触发器没有e(事件变量),我无法执行类似e.queryString的操作来获取查询参数。我可能是错的,需要有人确认。

OR

是否可以缓存信息,以便我可以跟踪谁的查询字符串是谁,然后在提交表单时提取适当的信息。

0 个答案:

没有答案