getRespondentEmail() 返回我的电子邮件而不是表单回复者
getRespondentEmail() returning my email not the Form responder
我在 Google 域中,我正在尝试提取表单回复者的电子邮件(这是自动收集的,因为他们必须登录才能填写表单)
但结果是我一直收到我的电子邮件而不是回复表单?
这是包含在给定表单中的代码,因此使用
var 形式 = FormApp.getActiveForm()
但我不明白为什么我每次都收到自己的电子邮件?
function GetRespondersEmail(){
var form = FormApp.getActiveForm();
var responses=form.getResponses();
/// this will give you all responses of your form as an array////
///iterate the array to get respondent email id///
for(var i = 0; i < responses.length; i++){
var emailTo = responses[i].getRespondentEmail();
Logger.log('emailTo = '+emailTo);
return emailTo;
}
};
getRespondentEmail() :
如果启用了 Form.setCollectEmail(收集)设置,则获取提交此回复的人的电子邮件地址。
您是否将 Form.setCollectEmail(collect) 设置为 true?
注意:此功能仅适用于 Google Apps for Business、Google Apps for Education 或 Google Apps for Your Domain 的用户创建的表单。无法收集其他类型 Google 帐户的电子邮件地址。对于使用其他 Google 个帐户创建的表单,此方法会引发脚本异常。
编辑如下:
我改变了你的代码。问题是你 return 循环中的一个值,所以你永远不会完成你的循环,并且 return 只有第一个响应的电子邮件。
function GetRespondersEmail(){
var form = FormApp.getActiveForm();
var emailTo = []
var responses=form.getResponses();
/// this will give you all responses of your form as an array////
///iterate the array to get respondent email id///
for(var i = 0; i < responses.length; i++){
emailTo[i] = responses[i].getRespondentEmail();
}
Logger.log('emailTo = '+emailTo);
return emailTo;
};
我试过了,似乎能满足你的需求。
好的,我吸取了教训,我想做的是访问填写表格的用户的单个电子邮件地址。所以事实证明我可以用函数 onFormSubmit() 完全替换上面的函数
即
function onFormSubmit(e) {
var emailTo = e.response.getRespondentEmail();
}
除非我忽略了一些事情,否则这比我在上面尝试的要简单得多。
我在 Google 域中,我正在尝试提取表单回复者的电子邮件(这是自动收集的,因为他们必须登录才能填写表单)
但结果是我一直收到我的电子邮件而不是回复表单?
这是包含在给定表单中的代码,因此使用
var 形式 = FormApp.getActiveForm()
但我不明白为什么我每次都收到自己的电子邮件?
function GetRespondersEmail(){
var form = FormApp.getActiveForm();
var responses=form.getResponses();
/// this will give you all responses of your form as an array////
///iterate the array to get respondent email id///
for(var i = 0; i < responses.length; i++){
var emailTo = responses[i].getRespondentEmail();
Logger.log('emailTo = '+emailTo);
return emailTo;
}
};
getRespondentEmail() :
如果启用了 Form.setCollectEmail(收集)设置,则获取提交此回复的人的电子邮件地址。
您是否将 Form.setCollectEmail(collect) 设置为 true?
注意:此功能仅适用于 Google Apps for Business、Google Apps for Education 或 Google Apps for Your Domain 的用户创建的表单。无法收集其他类型 Google 帐户的电子邮件地址。对于使用其他 Google 个帐户创建的表单,此方法会引发脚本异常。
编辑如下: 我改变了你的代码。问题是你 return 循环中的一个值,所以你永远不会完成你的循环,并且 return 只有第一个响应的电子邮件。
function GetRespondersEmail(){
var form = FormApp.getActiveForm();
var emailTo = []
var responses=form.getResponses();
/// this will give you all responses of your form as an array////
///iterate the array to get respondent email id///
for(var i = 0; i < responses.length; i++){
emailTo[i] = responses[i].getRespondentEmail();
}
Logger.log('emailTo = '+emailTo);
return emailTo;
};
我试过了,似乎能满足你的需求。
好的,我吸取了教训,我想做的是访问填写表格的用户的单个电子邮件地址。所以事实证明我可以用函数 onFormSubmit() 完全替换上面的函数 即
function onFormSubmit(e) {
var emailTo = e.response.getRespondentEmail();
}
除非我忽略了一些事情,否则这比我在上面尝试的要简单得多。