【问题标题】:DiscordAPIError Invalid Form Body when Trying to Purge Messages尝试清除消息时出现 DiscordAPIError 无效的表单正文
【发布时间】:2018-05-16 05:22:44
【问题描述】:

所以我很确定这段代码在某一时刻可以正常工作,但最近引起我注意的是它有时有效但并非总是有效(阅读:它将总是清除我的消息 n数量,但它可能不会清除其他成员)。

因为我是在自学如何在这个项目中使用多个文件,所以代码实际上被拆分为两个文件。我不确定这是否与问题有关。鉴于这两个文件的大小,我已将它们都上传到 pastebin。

The command code. The Function code.

当我尝试清除 n 时它清除得很好,其中 n 是可接受范围内的任何数字,但是当我尝试按用户名清除 n 时,我收到一条错误消息说明

DiscordAPIError: 无效的表单正文

限制:值“”不是整数。

(注意是两个双引号,格式有点不清楚)

我很困惑它在哪里得到一个不是 int 的值,因为我正在通过 praseInt 运行该金额。我已经剪掉了检查用户是否已定义的代码段并将其发布在下面,因为我认为这是问题所在:

if (user) { // If User is Provided
  debug.run(`Filtering messages by ${user.username}`);
  const filterBy = user ? user.id : client.user.id;
  messages = messages.filter(m => m.author.id === filterBy).array().slice(0, amount);
}

任何帮助将不胜感激。如果我想不通,我或多或少会放弃用户功能。

我也为格式化道歉。我永远无法掌握这个网站格式的窍门。

【问题讨论】:

  • 只是为了确保它不是您的amount 变量,您能否尝试通过设置amount = 5 来覆盖函数中的值。除此之外,我倾向于说这可能是 discord.js 库中的一个问题。在我看来,它应该在将您的输入发送到 Discord api 之前对其进行验证。您可以通过 Discord 联系开发人员及其帮助团队。您通常会很快得到回复。
  • 我将其硬编码为许多不同的数量。有时它会起作用,有时它不会。结果将很大程度上取决于我想尝试删除的数字,以及我试图删除的目标成员。我想我会联系他们的。我只是想先检查并确保这不是我的错误。
  • 您介意告诉我们您使用的是什么版本的 discord.js?

标签: javascript node.js discord.js


【解决方案1】:

尝试摆脱 .array().slice(0, amount).

如果message.channel.fetchMessages({ limit: amount }).then((messages) => { 行已经限制了获取的消息数组,则不需要被amount 变量剪切。

【讨论】:

    猜你喜欢
    • 2020-03-11
    • 2021-04-09
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    • 2022-09-28
    • 2015-02-14
    • 2021-08-04
    相关资源
    最近更新 更多