Webhook для Google Forms для публикации материалов на канале Discord - PullRequest
0 голосов
/ 20 января 2019

У меня проблема с Webhook для Google Forms для публикации сообщений на канале Discord. Это прекрасно работает, но я не хочу, чтобы он получал всю заявку, а только первые 4 ответа. GitHub ссылка на код

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 голосов
/ 22 января 2019

Нашел способ сделать это. Если я изменю строку 11 на

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

с? число ответов, которое вы хотите опустить, дает желаемый результат. Возможно, есть способ сделать это в более ранних строках, но это сработало для меня.

...