我正在尝试使用Node.js访问不和谐的Webhook,以获取简单消息(目前)。
我在这里和其他地方已经看过几次尝试,但是对它们并不太了解,也无法自己复制。通读docs并在线搜索后,我发现node-fetch在我看来应该可以正常工作,而看上去似乎更简单。
const fetch = require('node-fetch');
var webhook = {
"id":"my webhook id",
"token":"my webhook token"
};
var URL = `https://discordapp.com/api/webhooks/${webhook.id}/${webhook.token}`;
fetch(URL, {
"method":"POST",
"payload": JSON.stringify({
"content":"test"
})
})
.then(res=> console.log(res));
我唯一获得的输出是状态代码为400的响应对象。唯一获得其他信息的时间是删除该方法时,然后得到的代码200并没有太大帮助。 我的有效负载是完全错误的还是URL或fetch语法出错?
答案 0 :(得分:1)
您可以使用Discord.js中内置的WebhookClient
,而不是发出自己的POST请求...
const id = '';
const token = '';
const webhook = new Discord.WebhookClient(id, token);
webhook.send('Hello world.')
.catch(console.error);
答案 1 :(得分:0)
您的请求中有2个小错误,导致错误400:
payload
属性必须替换为body
var URL = `https://discordapp.com/api/webhooks/${webhook.id}/${webhook.token}`;
fetch(URL, {
"method":"POST",
"headers": {"Content-Type": "application/json"},
"body": JSON.stringify({
"content":"test"
})
})
.then(res=> console.log(res))
.catch(err => console.error(err));