Webhook for Google Forms将提交内容发布到Discord频道

时间:2019-01-20 11:30:43

标签: javascript google-apps-script discord

我在使用Webhook for Google Forms将提交的内容发布到Discord频道时遇到问题。效果很好,但我不希望它获取整个提交内容,而仅获取前四个响应。 GitHub link to code

var POST_URL = "WEBHOOKURL";

function onSubmit(e) {
 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();
  var parts = answer.match(/[\s\S]{1,1024}/g) || [];

  if (answer == "") {
   continue;
}
for (var j = 0; j < parts.length; j++) {
 if (j == 0) {
  items.push({
   "name": question,
   "value": parts[j],
   "inline": false
  });
 } else {
  items.push({
   "name": question.concat(" (cont.)"),
   "value": parts[j],
   "inline": false
  });
 }
}
}

var options = {
 "method": "post",
 "payload": JSON.stringify({
  "embeds": [{
   "title": "TOP TEXT CHANGE THIS IN SCRIPT",
   "fields": items,
   "footer": {
    "text": "BOTTOM TEXT CHANGE THIS IN SCRIPT"
   }
  }]
 })
};

UrlFetchApp.fetch(POST_URL, options);
};

我已经在第5行中尝试了以下修改

var allResponses = form.getResponses().slice(0, 4);

,但没有用。它只是获取了整个表格。

我希望有人能提供帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

找到了一种方法。如果我将第11行更改为

for (var i = 0; i < response.length - ?; i++) {

与?是您希望省略的响应数,您将获得所需的结果。 在前面的几行中可能有一种方法可以这样做,但这对我有用。