【发布时间】:2020-03-22 23:18:35
【问题描述】:
我对 Google Scripts 很陌生,并且正在尝试学习,但文档要么有冲突,要么不存在,要么不适合我。
目标是创建一个脚本,该脚本收集来自 Google 表单的响应并根据用户输入字段之一(用户可以在其中选择其位置的下拉框)发送电子邮件。问题是我无法检索表单响应。我收到一个错误,“getItemResponses();”不是函数。如何从表单中获得响应?所有其他部分我都想通了。
流程 - 我已经通过转到编辑 -> 当前项目的触发器 -> 创建了一个新触发器来设置触发器,该触发器在提交时运行我的函数。应该发生的是(稍后在脚本中)sendMail 以我的身份将邮件消息发送到 var “respondent”。但是,我收到错误“getItemResponses();”只是尝试从脚本编辑器运行并填写测试表单提交时(通过后者的电子邮件),这不是一个功能。
提前感谢您的帮助。请再次注意,我是 Google Scripts 的新手。
function sendEmails(e) {
// Get active form and responses
var formResponse = e.response;
var itemResponses = formResponse.getItemResponses();
// Assign responses to variables
var respondent = itemResponses[0].getResponse();
var district = itemResponses[1].getResponse();
var urgency = itemResponses[2].getResponse();
var type = itemResponses[3].getResponse();
var topic = itemResponses[4].getResponse();
// TAM email address. Used in sendTo field later
var sendTo = "person@email.com";
MailApp.sendEmail(sendTo,"subject","message body");
if(type == "Option 1") {
MailApp.sendEmail(respondent,"subject","message body");
}
}
【问题讨论】:
-
我认为提供您当前的脚本和复制问题的流程将有助于用户思考解决方案。
-
function sendEmails(e) { // 获取活动表单和响应 var form = FormApp.getActiveForm(); var formResponses = form.getResponses(); var itemResponses = formResponses.getItemResponses(); // 将响应分配给变量 var respondent = itemResponses[0].getResponse(); var 区 = itemResponses[1].getResponse(); var urgency = itemResponses[2].getResponse(); var type = itemResponses[3].getResponse(); var topic = itemResponses[4].getResponse(); }
-
抱歉,不知道如何添加代码块...
-
感谢您的回复。您可以在问题中添加脚本吗?因为很难在评论中看到脚本。您可以通过the edit button 编辑您的问题。您能否提供复制问题的详细流程?比如你如何运行函数
sendEmails(e)? -
添加了代码!所以脚本的另一部分只有一堆学区和员工信息/电子邮件,我不想花时间剪掉。最大的问题是我收到“getItemResponses();”不是一个函数,所以我无法提取用户的电子邮件和脚本未来将依赖(并且有效)的其他信息 - 使用 Google 表格对其进行了测试