使用 Webhook 从 google 脚本发送嵌入到 discord

sending an embed from google scripts to discord using Webhook

我现在致力于在触发时发送通知,从 google 脚本向 discord 发送嵌入式消息。

我查阅了多种资源,但找不到有效的资源。 我可以使用 webhooks 发送一条简单的消息,但是任何时候尝试插入它似乎都不会发送的嵌入,但是不会出现任何错误。


  var discordUrl = 'https://discord.com/api/webhooks/814799155587055667/4NuUkPYbXqgvpiAmxURnisPLGC6eJUO3uMH2jEzP0-cQkzy1Ohy2LyhB6OK5kKQdwOuM';

var options = {
  muteHttpExceptions: true,
 "method": "post",
 "payload": JSON.stringify({
    "username": "Compensation Notifier",
   "avatar_url": "https://i.pinimg.com/originals/46/f2/cb/46f2cb9bd2c4be10400634ff47ba23ae.png",
  "embeds": [{
      "author":{
        "name": "Record Added!",
      },
  "title": staff + " Recorded " + user + "Compensation",
      "color": 15258703,
      "fields": [
        {
          "name": "Staff Name",
          "value": staff,
          "inline": true
        },
        {
          "name": "Compensated's Name",
          "value": user,
          "inline": true
        },
          {
          "name": "Rubio Link",
          "value": rubio
        }
        ],
             "footer": {
        "text": "Compensation Recorder v1"
      }
  }] 
 }),
 
};

  var response = UrlFetchApp.fetch(discordUrl, options);

  Logger.log(response.getContentText());

}
function test(){
  var staff = "johnny";
  var user = "timmy";
  var rubio = "www.ogm.com";
  var amount = "155555";

postAddRecordMessageToDiscord(user,staff,rubio,amount);
}


到目前为止,发送消息的效果非常好,但是关于如何使嵌入与 google 脚本一起工作的内容似乎很少。

我知道这是可以做到的,因为我看到有人将他的信息从他的 google 工作表发送到他的文档,他也创建了一个用户表单,但是我尝试过的每次尝试似乎都失败了一切。

我试过像 discords API 说的那样添加嵌入,但它似乎不起作用,现在我不知所措。

在你的脚本中,请将contentType: "application/json"添加到options如下,再测试一下。

发件人:

var options = {
  muteHttpExceptions: true,

收件人:

var options = {
  contentType: "application/json",  // <--- Added
  muteHttpExceptions: true,

注:

  • 当我使用您的请求正文测试修改后的脚本时,我可以确认修改后的脚本有效。由此,我认为您对“嵌入”的 payload 对象是正确的。

参考文献: