我想在触发某个事件时通过谷歌应用脚本在不和谐频道发送机器人消息,但我不知道从哪里开始。这甚至可能吗?如果没有,有没有办法通过github做到这一点?
编辑:我已经弄清楚如何获取OAuth令牌,现在我该如何让机器人发送消息?答案 0 :(得分:1)
首先,这是来自discord.js的文档。
要让您的应用脚本与discord通信,您可以查看External APIs
Google Apps脚本可以与来自整个网络的API进行互动。这个 指南说明了如何在脚本中使用不同类型的API。
所提供的文件中提供了示例。
有关详细信息,请参阅这些有用的链接。
答案 1 :(得分:0)
我知道OP几乎没有机会仍然需要这个答案,但我将其放在此处,以便使用此问题搜索的其他人都可以找到答案
var webhooks = {
test: "Obtain a webhook for the channel you'd like and put it here."
};
function sendMessage(message, channel)
{
if(webhooks.hasOwnProperty(channel))
var url = webhooks[channel];
else {
Logger.log("Error Sending Message to Channel " + channel);
return "NoStoredWebhookException";
}
var payload = JSON.stringify({content: message});
var params = {
headers: {"Content-Type": "application/x-www-form-urlencoded"},
method: "POST",
payload: payload,
muteHttpExceptions: true
};
var res = UrlFetchApp.fetch(url, params);
Logger.log(res.getContentText());
}
// to call and send a message
sendMessage("Hi!", "test");
这是我通常用于发送消息的方式。不幸的是,据我所知,无法从网络挂钩中接收触发信息。
注意:以上答案引用了discord.js,它与Google Apps脚本不兼容
答案 2 :(得分:0)
超级容易。只需转到您的Discord频道,选择“编辑频道”>“ Webhooks”。您为机器人命名并设置其个人资料图片。它将为您提供一个已经包含授权令牌的webhook URL。 然后,您只需发布到该公共URL。 TADA,机器人会在给定的频道中显示一条消息。
function postMessageToDiscord(message) {
message = message || "Hello World!";
var discordUrl = 'https://discordapp.com/api/webhooks/labnol/123';
var payload = JSON.stringify({content: message});
var params = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
method: "POST",
payload: payload,
muteHttpExceptions: true
};
var response = UrlFetchApp.fetch(discordUrl, params);
Logger.log(response.getContentText());
}
来源:https://ctrlq.org/code/20563-post-message-to-discord-webhooks