【问题标题】:Google Form API - unable to retrieve a respondent emailGoogle Form API - 无法检索回复者电子邮件
【发布时间】:2023-02-22 06:09:49
【问题描述】:

我正在使用 Google Form API 创建一个示例项目来创建、更新和获取对表单的响应。 我正在使用以下文档作为参考和理解: https://developers.google.com/forms/api/reference/rest/v1/forms.responses 它提到单个响应正文(使用响应 ID)包含响应者电子邮件,但每次我触发 API 时,响应者电子邮件都是未定义的,因此不会在响应正文中返回。 我究竟做错了什么?

请注意我没有使用 Apps 脚本。我在 node.js 项目中使用 API。

谢谢

【问题讨论】:

    标签: node.js google-forms google-developers-console google-forms-api


    【解决方案1】:

    这个问题很老了,但我知道我花了很多时间搜索同类信息,所以我认为值得分享我的发现。

    您没有在响应正文中看到响应者的电子邮件,因为表单未设置为收集它们。默认情况下,使用 api 创建的表单不会收集电子邮件信息。这对于 node.js 可能有所不同,但对于 Google Forms API 的 python 集成,您无法自动获取回复者的电子邮件,并且 api 中没有选项/参数允许这样做。

    有两种“自动”收集电子邮件的方法。您可以在官方的 Google 操作指南中找到这些方法,但为了节省您的时间,我会用自己的话写下它们:

    第一种方法是在驱动器文件夹中创建一个表格,该表格将存储您将创建的所有其他表格(例如 /my/drive/root/MyForms/ 中的“my_form.form”)。打开表单并在设置选项卡中,一直向下滚动到“默认”部分。选择“默认收集电子邮件地址”。从现在开始,您直接创建的任何表格在这个文件夹中(/我的/驱动器/根目录/我的表格/)使用网络用户界面将自动设置为收集电子邮件。这确实不是但是,如果您使用 api(甚至是 Google Drive API)在该文件夹中创建表单,则可以正常工作。

    第二种方法(或者如果您不打算每次都使用同一个文件夹的唯一方法)是手动编辑您创建的每个表单以在发送之前收集它们。您需要转到驱动器网页中的表格,滚动到“回复”,然后选择“收集电子邮件地址”。这是目前(截至我撰写本文的日期——如果情况发生变化,请有人发表评论,因为它让我发疯!)收集电子邮件地址和回复的唯一方法。选择按钮后,来自 api 的响应正文将正确包含响应者的电子邮件,如您在上面链接的文档中所述。也许 Google Forms API 的下一次迭代将允许我们以编程方式设置它(提示提示!),但在那之前,工作流程中仍然需要人类。

    注意:如果您忘记设置表格以在发送之前收集电子邮件帐户,则更改设置将仅适用于所有已提交的回复改变。如果不搜索回复者并手动编辑回复表,您就无法追溯添加电子邮件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      • 2015-09-11
      • 1970-01-01
      • 2023-03-31
      相关资源
      最近更新 更多