我正在使用带有不和谐的Webhook在不和谐频道中显示结果。我的表单使用匹配的表达式登录。此登录名包含电子邮件。我希望检查此电子邮件或将其从不和谐频道的输出中删除,因为我不希望人们看到他们的电子邮件是什么。我对Google Apps脚本了解甚少,因此我确实需要帮助。如果您知道任何Javascript,希望您能提供帮助,因为Google Apps Script高度基于javascript。
我尝试使用if语句来识别问题的内容,如果问题内容为“电子邮件地址:”,那么答案将更改为空白。这没用。
function onSubmit(e) {
var POST_URL = "WEBHOOK";
var form = FormApp.getActiveForm();
var allResponses = form.getResponses();
var latestResponse = allResponses[allResponses.length - 1];
var response = latestResponse.getItemResponses();
var items = [];
for (var i = 0; i < response.length; i++) {
var question = response[i].getItem().getTitle();
var answer = response[i].getResponse();
try {
var parts = answer.match(/[\s\S]{1,1024}/g) || [];
} catch (e) {
var parts = answer;
}
if (answer == "") {
continue;
}
for (var j = 0; j < parts.length; j++) {
if (j == 0) {
if (question == "Email address:"){
answer = " ";
}
items.push({
"name": question,
"value": parts[j],
"inline": false
});
} else {
items.push({
"name": question.concat(" (cont.)"),
"value": parts[j],
"inline": false
});
}
}
}
var params = {
"method": "post",
"payload": JSON.stringify({
"embeds": [{
"title": "Form",
"fields": items,
"footer": {
"text": "Form"
}
}]
})
};
UrlFetchApp.fetch(POST_URL, params);}
没有错误消息。我已多次运行该脚本,但似乎无法正常工作。该电子邮件仍显示在不和谐频道中。
答案 0 :(得分:2)
当您使用getItemResponses()
获得答复时,您将收到与问题顺序相同的表格答复数组。解决您的问题的方法是将电子邮件问题更改为表单顶部,然后在其后开始循环:for (var i = 1; i < response.length; i++) {...
为避免更改表格,您只需跟踪哪个问题是电子邮件,可以通过在日志中用Logger.log(response[i].getResponse() + " " + i);
列出您的答复,然后使用i跳过循环中的电子邮件条目来进行检查像这样:
for (var i = 0; i < response.length; i++) {
if (i == x)
continue;
...
其中x是电子邮件的索引,只需跳过电子邮件中的条目,然后继续其余问题,希望对您有所帮助!