从Google Sheets表单响应发送Webhook到使用Webhook的Discord

时间:2019-07-07 17:03:13

标签: google-sheets discord webhooks google-sheets-api google-form

我正在为我的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>

0 个答案:

没有答案