如何使用 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
};
参考:
在我的环境中,我正在使用这样的请求正文。它工作正常。但如果在您的环境中它不起作用,请告诉我。我想考虑其他解决方案。
我编写了以下脚本:
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
};
参考:
在我的环境中,我正在使用这样的请求正文。它工作正常。但如果在您的环境中它不起作用,请告诉我。我想考虑其他解决方案。