Нужно из гугл форм вывести сообщение в дискорд через вебхук с изображением, как сделать?

Я нашла как можно вывести через вебхук гугл форму через редактор скриптов, мне помогло это видео: https://www.youtube.com/watch?v=bedH3LiGjeU

Код ниже у меня работает в редакторе скриптов Google Forms:

function onSubmit(e) {
  var discordPayload = { 
    content: 'Form submitted',
    embeds: [{
      type: 'rich',
      title: 'Form submission',
      color: 7506394,
      fields: []
    }]
  }
  e.response.getItemResponses().forEach(function(i) {
    var v = i.getResponse() || 'None'
    discordPayload.embeds[0].fields.push({ name: i.getItem().getTitle(), value: v })
  })
  UrlFetchApp.fetch('youknowwhatgoeshereanywaysandimnotinthemoodtoleakstuff', {
    method: 'post',
    payload: JSON.stringify(discordPayload),
    contentType: 'application/json'
  })
}

Проблема состоит в том, что если в форме использовать изображение, то скрипт перестает работать, не могли бы мне помочь подредактировать код так, чтоб он пересылал и изображение тоже? Либо просто скажите в какую сторону смотреть или где искать как это сделать, уже весь интернет облазил.
  • Вопрос задан
  • 5540 просмотров
Пригласить эксперта
Ответы на вопрос 1
@VladislavCollins
Сам лично использую данный код, держите

var POST_URL = ""; //Веб хук

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();
        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) {
                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",
        "headers": {
            "Content-Type": "application/json",
        },
        "payload": JSON.stringify({
            "content": "‌", // Обычный текст (Не в Embed)
  "embeds": [
    {
      "title": "", // Title, главный текст вверху
      "color": 0, // Цвет обводки. В формате Decimal 0000000
      "timestamp": null,
      "author": {
        "name": "" // Пункт Author / Маленький текст вверху
      },
      "image": {
        "url": "" // Гифка либо картинка внизу
      },
      "thumbnail": {
        "url": "" // Верхняя маленькая картинка (Лого)
      },
      "footer": {
        "text": "Ожидайте проверки" // footer
      },
      "fields": items,
    }
    ]
        })
    };

    UrlFetchApp.fetch(POST_URL, options);
};
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы