我正在为我的Discord Server开发一个缺勤系统。我正在使用Google表单供员工提交其缺席信息,然后我希望通过Webhook将一些回答的问题发送给Discord。因为仅使用Disord Forms可能无法实现,所以我有另一种解决方案。
我的Google表单已链接到电子表格。创建新行时,我希望将某些列的信息通过Webhook发送到Discord。
Google表单-> Google表格(某些列/单元格/答案)-> Webhook->不和谐
注意: -我已经看到了一些插件,但是它们不是专门为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>