Отправка больших форм Google на Discord с помощью Webhooks - PullRequest
0 голосов
/ 07 февраля 2020
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();
        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": "‌", // This is not an empty string
            "embeds": [{
                "title": "Rank Application",
                "fields": items,
                "footer": {
                    "text": ""
                }
            }]
        })
    };

    UrlFetchApp.fetch(POST_URL, options);
};

Приведенный выше код работает, если только представленная Форма не превышает пределы символов Discord (в этом случае Discord возвращает ошибку 400). Я знаю, что мне нужно создать .slice () whilel oop для случаев, когда текст превышает ~ 1500 символов, но я не уверен, как это сделать.

Я посмотрел везде, и кажется, что все на inte rnet в отношении этого сценария не связано с ограничениями символов.

Заранее благодарим за любую помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...