【问题标题】:Is there any way to do a for each all Google Forms created by a Gmail account?有什么方法可以为 Gmail 帐户创建的每个 Google 表单做一个吗?
【发布时间】:2021-01-19 14:43:53
【问题描述】:

我正在尝试获取由特定 google 帐户(我自己的 Gmail 帐户 BTW)创建的所有 google 表单的列表,以便列出它们,获取每个 ID,然后能够提取相关的响应电子表格并将所有内容合并到一个大型的自制合并表中。

我尝试过使用FormApp,但它似乎只适用于一种形式。 我已经尝试过滤DriveApp 中的所有现有文件,但一点运气都没有。

【问题讨论】:

  • 您是否尝试过 Drve.Files.List 使用搜索 Application/vnd.google.apps.form 的查询

标签: google-apps-script google-drive-api google-forms


【解决方案1】:

您可以使用DriveApp.getFilesByType() 获取驱动器中的所有 Google 表单,使用 MimeType.GOOGLE_FORMS

获得所有表格后,您可以使用 File.getOwner() User.getEmail() 检查其所有者的电子邮件地址,然后再列出所有文件 ID。

之后,您可以使用FormApp.openById() 打开每个表单并使用Form.getDestinationId() 获取响应目的地。

示例代码:

  var formList = DriveApp.getFilesByType(MimeType.GOOGLE_FORMS);
  var myForms = [];
  while (formList.hasNext()) {
    var form = formList.next();
    var ownerEmail = form.getOwner().getEmail();
    Logger.log(form.getName());
    Logger.log(ownerEmail);

    if(ownerEmail == "myEmail@example.com"){
      myForms.push(form.getId());
    }
  }

  myForms.forEach(id=>{
    var form = FormApp.openById(id);
    var destinationId = form.getDestinationId();
    var destinationType = form.getDestinationType();
    Logger.log(destinationId);
    Logger.log(destinationType);
  })

【讨论】:

    猜你喜欢
    • 2022-12-15
    • 1970-01-01
    • 2020-02-09
    • 2020-03-03
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 2021-02-17
    • 2021-07-03
    相关资源
    最近更新 更多