【问题标题】:How to access or call "Send this form to others"?如何访问或调用“将此表格发送给其他人”?
【发布时间】:2011-09-09 01:25:05
【问题描述】:

我有一个附加到 Google Apps 电子表格的表单。这是一种让我的同事向我们的每周审查会议提交议程项目的表格。我正在编写一个脚本来自动向相关人员发送电子邮件提醒。

为了让他们不那么烦人和乏味,我想将表单嵌入到电子邮件中。 Google Docs 提供了一种手动发送表单的方法:电子表格 > 表单 > 发送表单。但是,我在 Google Apps 脚本文档中找不到任何可以触发此功能的方法,例如

  • 类似 sendFormInEmail 的方法
  • 访问电子邮件友好表单 HTML,我可以将其分配给 the sendEmail method 的 htmlBody 参数。
  • 触发 Google Apps 中的任意菜单项
  • 还有别的吗?

我可以通过从电子邮件中提取生成的 HTML 并将其分配为 htmlBody 参数来解决问题,但是每次我们想要更改表单时,我都必须手动更新 html——而不是什么我想发生。

有什么建议吗?

【问题讨论】:

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


    【解决方案1】:

    乔里斯,你是对的。您可以使用方法 fetch() 将表单的 html 发送到用户的邮箱:

    var form = FormApp.create('New Form');
    ....
    var url = form.getPublishedUrl();
    var response = UrlFetchApp.fetch(url);
    var htmlBody = HtmlService.createHtmlOutput(response).getContent();
        MailApp.sendEmail({
        to: email,
        subject: subject,
        htmlBody: htmlBody,
      });
    ...
    

    【讨论】:

    • 如果表单是组织私有的,这不起作用,因为 UrlFetchApp 无权查看它。我还没有针对这种情况的解决方法。
    【解决方案2】:

    我的要求和你完全相同,但不幸的是似乎没有 API 调用可以做到这一点。

    我认为可行的方法(尽管我还没有实际尝试过)是使用 Spreadsheet.getFormUrl 方法获取表单 URL,然后使用 UrlFetchAp.fetch 获取电子表格表单的 HTML,然后使用它HTML 作为电子邮件正文。

    就像我说的,我不知道这是否可行(尽管在纸面上应该可行!),但我很想知道它是否可行!

    【讨论】:

      猜你喜欢
      • 2012-05-18
      • 2013-01-06
      • 1970-01-01
      • 2011-04-25
      • 2019-01-26
      • 2014-02-16
      • 2016-05-21
      • 2020-04-24
      • 1970-01-01
      相关资源
      最近更新 更多