Отправка webhook из Google Sheets Form Ответы на Discord с Webhook - PullRequest
1 голос
/ 07 июля 2019

Я работаю над системой отсутствия для моего сервера Discord.Я использую Google Forms, чтобы сотрудники могли сообщить об их отсутствии, а затем я хочу, чтобы некоторые из ответов на вопросы были отправлены в сообщении Discord через Webhook.Так как это возможно невозможно только с помощью форм Disord, у меня есть другое решение.

Мои формы Google связаны с электронной таблицей.Когда создается новая строка, я хочу, чтобы некоторые данные столбцов отправлялись через веб-крючок в Discord.

Google Forms -> Google Sheets (некоторые столбцы / ячейки / ответы) -> Webhook -> Discord

Примечание: - Я видел несколько дополнений для этого, но они не созданы специально для Discord и сложны в использовании.- Я пробовал такие инструменты, как Zapier, они работают, но у них есть испытание, которое довольно короткое.Я хочу, чтобы это было продление один или два раза в год или постоянное бесплатное решение.

Реализация этого в формах Google была моей предыдущей идеей, и я думаю, что это возможно, но гораздо сложнее.Я нашел этот код, но я не знаю, как настроить мою систему на него.

function onFormSubmit(e) {
var fields = [];

for (i = 0; i < e.response.getItemResponses().length; i++) {
    var response = e.response.getItemResponses()[i];
    fields.push({
        "name": response.getItem().getTitle(),
        "value": response.getResponse(),
        "inline": false
    });
}

var data = {
    "embeds": [{
        "title": "**New form submission** — " + (e.source.getTitle() != null && e.source.getTitle().length > 0 ? e.source.getTitle() : "Untitled Form"),
        "type": "rich",
        "fields": fields
    }]
};

var options = {
    method: "post",
    payload: JSON.stringify(data),
    contentType: "application/json; charset=utf-8",
    muteHttpExceptions: true
};

Logger.log("Attempting to send:");
Logger.log(JSON.stringify(data));

var response = UrlFetchApp.fetch("DISCORD WEBHOOK URL GOES HERE", options);
Logger.log(response.getContentText());
};

Когда отправляется сообщение об отсутствии, я хочу два канала.Один для всех других сотрудников, чтобы увидеть, и один только для администраторов.Только администраторы должны видеть дополнительную информацию.

Примечание: - Вывод отправляется в Discord, поэтому я буду использовать их форматирование здесь.- Возможно, на некоторые вопросы нет ответа, поэтому для этого я хочу, чтобы поле было пустым.

Вывод на канал отсутствия (для всех сотрудников):

IGN: <in-game name>
Reason: <reason for absence>

From: <absence start>
To: <absence end>

Вывод на канал администратора (дляадминистраторы):

IGN: <in-game name>
Reason: <reason for absence>

From: <absence start>
To: <absence end>

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