首页 > 解决方案 > 使用 Webhook 从谷歌脚本发送嵌入到不和谐

问题描述

我现在正在努力在触发时发送通知,该通知将嵌入消息发送到来自谷歌脚本的不和谐。

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


  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);
}


到目前为止,这对于发送消息非常有效,但是关于如何使嵌入与谷歌脚本一起工作似乎很少。

我知道这是可以做到的,因为我看到有人将他的信息从他的谷歌表格发送到他的文档,并且他也创建了一个用户表单,但是我尝试的每一次尝试似乎都会破坏一切。

我尝试添加不和谐 API 所说的嵌入,但它似乎不起作用,现在我不知所措。

标签: google-apps-scriptdiscordwebhooks

解决方案


在您的脚本中,请添加contentType: "application/json"如下options内容,然后再次测试。

从:

var options = {
  muteHttpExceptions: true,

至:

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

笔记:

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

参考:


推荐阅读