Как загрузить изображение в Discord с помощью Google Apps Script и Discord Webhook? - PullRequest
0 голосов
/ 26 сентября 2018

Я написал следующий скрипт:

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 сообщает мне, что я пытаюсь отправить пустое сообщение.Кто-нибудь может мне помочь?

Сообщение об ошибке

Ошибка должна быть связана с тем, как я пытаюсь загрузить изображение:

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

или способ определения полезной нагрузки для содержимого multipart / form-data:

 var payload = {
    "file": img
 };

1 Ответ

0 голосов
/ 27 сентября 2018

Как насчет этой модификации?

Модифицированный скрипт:

От:
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
};

Ссылка:

В моей среде я использую такое тело запроса.И это прекрасно работает.Но если в вашей среде это не сработало, пожалуйста, скажите мне.Я хотел бы подумать о других решениях.

...