通过谷歌应用程序脚本发送消息给discord

时间:2017-12-04 18:12:57

标签: javascript google-apps-script discord

我想在触发某个事件时通过谷歌应用脚​​本在不和谐频道发送机器人消息,但我不知道从哪里开始。这甚至可能吗?如果没有,有没有办法通过github做到这一点?

编辑:我已经弄清楚如何获取OAuth令牌,现在我该如何让机器人发送消息?

3 个答案:

答案 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