【问题标题】:Retrieve respondent's email address of who modify a Google Form response检索修改 Google 表单回复的回复者的电子邮件地址
【发布时间】:2016-10-02 20:35:23
【问题描述】:

我使用工作帐户创建了一个 Google 表单,并将其设为“仅限 [domain.com] 用户”。现在我可以收集首先提交回复的人的电子邮件地址。然后我的问题来了:是否可以收集修改之前回复的其他人的电子邮件地址?

例如,像这样的情况,A 人填写了一张表格,他将编辑链接分享给他的队友 B 人,然后 B 人更新了之前表格上的回复。我想知道是否有任何解决方案可以检索 B 的电子邮件(无需在表单中询问他们的电子邮件地址)。

我尝试使用 getRespondentEmail(),但它不起作用。它总是返回人 A 的电子邮件地址。

【问题讨论】:

  • 您是否尝试使用带有Session.getActiveUser() 的“提交表单”触发器?
  • @SandyGood 是的。我还尝试使用带有Session.getActiveUser().getEmail()Session.getEffectiveUser().getEmail() 的“提交表单”触发器。他们都将返回与我(此表单/脚本的所有者)相同的帐户。
  • 听起来好像您是以您而非用户的身份运行脚本。是否已部署/发布?如果是,您是否将其设置为以您自己或用户身份运行?
  • @Karl_S 它没有部署/发布。当表单提交触发器触发时,脚本向函数传递一个事件对象。如果编辑响应的用户一无所获,我可以看到 e 中的字段 Username。 @_@
  • 据我了解,除非提示运行脚本的人授权脚本,否则 'Session.getActiveUser().getEmail()' 和 'Session.getEffectiveUser().getEmail()'以创建触发器的人身份运行,而不是以运行脚本的人身份运行。用户无法在某些触发器上授权脚本,例如在编辑时,我相信在表单提交时。

标签: google-apps-script google-sheets google-forms


【解决方案1】:

请尝试使用getEditResponseUrl() 方法。

此方法,如文档中所述,

生成可用于编辑已提交响应的 URL,即使 Form.setAllowResponseEdits(enabled) 设置已禁用。访问该链接的任何人都可以编辑回复,但如果启用了Form.setRequireLogin(requireLogin) 设置,他们需要一个可以访问表单的帐户。 如果启用Form.setCollectEmail(collect) 设置,表单会记录编辑回复的用户的电子邮件地址,而不是原始回复者的电子邮件地址。

【讨论】:

  • 不行。。发现getEditResponseUrl()方法的URL和google form生成的一样。附言这些表单设置已启用。
猜你喜欢
  • 2023-02-22
  • 2015-09-12
  • 1970-01-01
  • 2014-12-13
  • 1970-01-01
  • 2011-11-07
  • 1970-01-01
  • 1970-01-01
  • 2019-05-07
相关资源
最近更新 更多