【问题标题】:Webhook for Google Forms to post submissions to a Discord channel用于 Google 表单的 Webhook,用于将提交内容发布到 Discord 频道
【发布时间】:2019-06-14 00:26:07
【问题描述】:

我在使用 Google 表单的 Webhook 将提交内容发布到 Discord 频道时遇到问题。它工作得很好,但我不希望它获取整个提交,而只获取前 4 个响应。 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);

它没有工作。它只是获取了整个表单。

我希望有人可以提供帮助。谢谢。

【问题讨论】:

  • 请以(格式化)文本形式发布测试,而不是图片。
  • 根据请求从屏幕截图更改为格式化文本。我希望能澄清问题。
  • 我还添加了一个包含整个脚本的链接。一个想法是,如果 allResponses = [response1, response2, response3, response4],那么 allResponses[1:3] 将返回 [response2, response3]。但我不知道这是否可行。

标签: javascript google-apps-script discord


【解决方案1】:

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

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

与 ?作为您想要省略的响应数量,您将获得所需的结果。 在前面的几行中可能有一种方法可以做到这一点,但这对我有用。

【讨论】:

  • 如果这是您的解决方案,您可能希望真正接受它。
猜你喜欢
  • 2023-01-10
  • 1970-01-01
  • 2019-01-16
  • 1970-01-01
  • 1970-01-01
  • 2020-12-06
  • 2020-07-13
  • 2012-08-12
  • 2021-07-20
相关资源
最近更新 更多