【问题标题】:how to know if a Google Form has been submitted by the user in a web app如何知道用户是否在网络应用中提交了 Google 表单
【发布时间】:2020-10-14 18:13:23
【问题描述】:

我想在我的网络应用中使用 Google 表单来运行测验。

  1. Google 表单已创建。
  2. 我使用预填充选项来获取 URL。
  3. 从我的网络应用程序中,我创建了一个 iframe,并通过将用户 ID 传递给表单来传递 URL(每个用户都不同)。
  4. 用户现在填写表单并提交。
  5. 数据存储在电子表格中。
  6. 我之前发布了电子表格(因此将其公开)。
  7. 我现在可以访问电子表格数据并更新我的本地数据库。

因此,目前,当用户(从 Google 表单中)提交时,我的网络应用程序无法知道它。 (我已经在互联网上浏览了解决方案,但没有找到任何解决方案。

有没有办法解决这个问题?

目前,在网络应用程序的某个“阶段”,我检查数据库中是否有用户表单数据。如果没有,我会检查电子表格中的用户数据。如果找到,请更新 webapp 数据库。所以从这个意义上说,webapp 使用拉取功能来检查更新。

谢谢

【问题讨论】:

  • 虽然我不确定我是否能正确理解您的情况,但如果在提交 Google 表单时将值放入电子表格,那么使用表单的提交触发器怎么样? Ref 但如果这不是你所期望的方向,我很抱歉。
  • 谢谢@Tanaike 我需要在显示表单的浏览器端触发一些东西......这样我的 webapp 就可以执行更改状态等所需的任何逻辑。

标签: google-apps-script google-forms


【解决方案1】:

我了解到您想知道何时上传了新的表单响应。如果我对问题的理解是正确的,那么您可以在响应表中使用简单的.onEdit() 触发器。作为替代方案,您可以使用在每个响应时触发的FormResponse.submit() 可安装触发器。请记住,触发器仅限于不会从 API 请求和脚本执行触发的表单上传,详见here。请不要犹豫,要求进一步澄清。


更新

根据您的最后评论,我知道您的首要任务是查看实时更新的响应表。如果我对这个问题的理解是正确的,那么您可以直接在 iframe 内的 webapp 中显示响应表。如果您对这种方法有疑问,请随时问我。

【讨论】:

  • 感谢@Jacques-Guzel Heron。我使用了 FormResponse Submit,但它充其量会触发后端 api 调用。虽然我想知道是否有一种方法可以调用谷歌表单所在的(iframe)浏览器窗口中的某些功能?
  • 你好@RmR!我刚刚根据新信息更新了我的答案。请看一下,如果有帮助,请告诉我。
  • 嗨@Jacques-Guzel Heron。再次澄清一下,当用户提交 Google 表单时,它会更新电子表格。 Google 表单(在我的例子中)位于主浏览器窗口的 iframe 中。我的需要是:当用户点击谷歌表单的提交按钮时,是否可以调用主浏览器窗口中的某些功能。从您的回复中我可以理解的是:我们可以在主浏览器窗口中有另一个 iframe 直接访问 google 表格,对吗?在这种情况下,我们可能必须使用 auth 路由 .. 并且还可能需要不断轮询工作表以检查更新
  • @RmR 我现在明白,当用户提交表单时,您的首要任务是在您的网页(iframe 内)中运行一个函数。我做对了吗?另外请说明您的函数是否为Apps Script Web App
  • 是的@Jacques。那是对的。该函数是在用户本地浏览器中运行的普通javascript函数
猜你喜欢
  • 2011-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-27
  • 1970-01-01
相关资源
最近更新 更多