如何使用 Google Apps 脚本和 Discord Webhook 将图像上传到 Discord?

How to upload an image to Discord using Google Apps Script and a Discord Webhook?

我编写了以下脚本:

function uploadImageToDiscord() {

  var link = "https://i.imgur.com/image.jpg";
  var img = UrlFetchApp.fetch(link).getBlob();

  var discordUrl = "https://discordapp.com/api/webhooks/mywebhook";

  var payload = {
    "file": img
  };

  var params = {
    headers: {
        "Content-Type": "multipart/form-data"
    },
    method: "post",
    payload: payload,
    muteHttpExceptions: true
  };

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

  Logger.log(response.getContentText());

}

但是,GAS 告诉我我正在尝试发送一条空消息。谁能帮帮我?

Error Message

错误一定与我尝试下载图片的方式有关:

var img = UrlFetchApp.fetch(link).getBlob();

或者我如何为 multipart/form-data 内容定义有效载荷的方式:

 var payload = {
    "file": img
 };

这个修改怎么样?

修改后的脚本:

从:
var params = {
  headers: {
      "Content-Type": "multipart/form-data"
  },
  method: "post",
  payload: payload,
  muteHttpExceptions: true
};
到:
var params = {
  method: "post",
  payload: payload,
  muteHttpExceptions: true
};

附加信息:

例如,如果要将文本添加到文件中,请使用以下请求正文。

var payload = {
  content: "sample text", // Added
  file: img
};
var params = {
  method: "post",
  payload: payload,
  muteHttpExceptions: true
};

参考:

在我的环境中,我正在使用这样的请求正文。它工作正常。但如果在您的环境中它不起作用,请告诉我。我想考虑其他解决方案。