Я работаю над системой отсутствия для моего сервера 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>