discordjs REST - 使用 api 端点创建消息

discordjs REST - create a message using api endpoint

嘿,我正在尝试使用 discordjs REST 创建消息,但出现以下错误:

S[50109]: The request body contains invalid JSON.
    at Q.runRequest (C:\Users\hp\Sync\hp\Test-bot\node_modules\@discordjs\rest\dist\index.js:7:581)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async Q.queueRequest (C:\Users\hp\Sync\hp\Test-bot\node_modules\@discordjs\rest\dist\index.js:5:2942) {
  rawError: { code: 50109, message: 'The request body contains invalid JSON.' },
  code: 50109,
  status: 400,
  method: 'post',
  url: 'https://discord.com/api/v9/channels/<channel_id>/messages',
  requestBody: { files: null, json: undefined }
}

我试过了,但无法通过这个错误。

这是我的代码 运行。

const { REST } = require('@discordjs/rest');
const { Routes } = require('discord-api-types/v9');
const { channelId, token } = require('./config.json');

const rest = new REST({ version: '9' }).setToken(token);

let message = {username : "Moo", content : "this is a message from api"};

rest.post(Routes.channelMessages(channelId), {files : null ,  json : JSON.stringify(message), headers: {
    "Content-Type": "application/json"} })
    .then(() => console.log('message sent succesfully....'))
    .catch(console.error);

您必须将 RequestData 参数中的 json 键更改为 body,并在 RequestData 参数中传入其他参数。

这部分代码应该是这样的。

// POST
rest.post(Routes.channelMessages(channelId), RequestData = {  body : JSON.stringify(message) , headers: {
    "Content-Type": "application/json"}, appendToFormData : true, passThroughBody :  true })