【问题标题】:how to send image via discord webhook using node-fetch?如何使用node-fetch通过discord webhook发送图像?
【发布时间】:2021-10-18 14:38:39
【问题描述】:
const fetch = require('node-fetch');
const fs = require('fs')
var data = fs.readFileSync('2.png', 'utf8')
var URL = "apikey";
fetch(URL, {
     "method":"POST",
     "headers": {"Content-Type": "application/json"},
     "body": data
    })
    .then(res=> console.log(res))
    .catch(err => console.error(err));

如何通过 discord webhook 发送图像?我已经尝试了上述方法,但它不起作用。并且在不和谐的文档中没有合适的例子。

【问题讨论】:

    标签: node.js discord fetch webhooks


    【解决方案1】:

    您正在发送一个文件,那么您的 Content-Type 应该是 multipart/form-data

    修改代码

    const fetch = require('node-fetch');
    const formData = require('form-data');
    const fs = require('fs')
    
    const form = new formData();
    form.append('file1', fs.createReadStream('./2.png')); // give absolute path if possible
    
    var URL = "XYZ URL";
    
    fetch(URL, {
        'method': 'POST',
        'body': form,
        headers: form.getHeaders()
    })
    .then(res=> console.log(res))
    .catch(err => console.error(err));
    

    discord's documentations本页黄色提示

    【讨论】:

    • const fetch = require('node-fetch'); const fs = require('fs') var data = fs.createReadStream('2.png') const fileSizeInBytes = data.size; var URL = "apikey"; fetch(URL, { "method":"POST", "headers": { "Content-length": fileSizeInBytes, 'Content-Type': 'multipart/form-data', 'Content-Disposition': 'form-data; name="2"; filename="2.png"' }, "body": JSON.stringify({ "file":data }) }) .then(res=> console.log(res)) .catch(err => console.error(err)); 救命,我做错了什么
    • @hrenacher228 更新了解决方案,这应该可以。如果可行,请投票并将答案标记为解决方案。谢谢
    猜你喜欢
    • 2021-10-21
    • 2020-11-28
    • 2020-04-11
    • 2020-11-26
    • 2019-06-07
    • 1970-01-01
    • 2019-01-15
    • 2023-02-21
    • 2019-10-21
    相关资源
    最近更新 更多