DiscordAPIError:行会高级订阅级别太低&关于线程创建(&qot;DiscordAPIError)

2022-02-23 00:00:00 discord javascript typescript discord.js

我一直在尝试使用TypeScript中的库"discord.js": "^13.1.0"创建公共线程。我一直在搜索,发现私有线程需要一定级别的不一致高级订阅,但我使用GUILD_PUBLIC_THREAD作为线程类型,因此应该不存在该错误。

我在文档中搜索了discordAPI、discord.js及其指南,但什么也没有找到,以下是创建线程的代码。

let threadChannel : ThreadChannel = await message.channel.threads.create({
            name: `Doubt of ${nick}`,
            autoArchiveDuration: 10080,
            type: "GUILD_PUBLIC_THREAD",
            startMessage: message.id,
        })

错误如下:

DiscordAPIError: Guild premium subscription level too low
    at RequestHandler.execute (/home/menitox/NeoClocker/node_modules/discord.js/src/rest/RequestHandler.js:298:13)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async RequestHandler.push (/home/menitox/NeoClocker/node_modules/discord.js/src/rest/RequestHandler.js:50:14)
    at async ThreadManager.create (/home/menitox/NeoClocker/node_modules/discord.js/src/managers/ThreadManager.js:132:18) {
  method: 'post',
  path: '/channels/842526064827301909/messages/931311236006686851/threads',
  code: 20035,
  httpStatus: 400,
  requestData: {
    json: {
      name: 'Doubt of Pablo Contreras',
      auto_archive_duration: 10080,
      type: 11
    },
    files: []
  }
}

解决方案

问题是您尝试将autoArchiveDuration设置为10080。虽然您可以将其设置为601440432010080

  • 4320仅在级别1上可用(当公会具有THREE_DAY_THREAD_ARCHIVE功能时)
  • 10080仅在级别2上可用(当公会具有SEVEN_DAY_THREAD_ARCHIVE功能时)

如果将autoArchiveDuration设置为601440MAX,代码将正常工作。MAX基于您的行业协会的功能。

另外,如果您提供startMessage选项,线程类型将自动定义,并且不能更改。提供的type字段将被忽略,因此您不需要添加它。默认值为GUILD_PUBLIC_THREAD

let threadChannel: ThreadChannel = await message.channel.threads.create({
  name: `Doubt of ${nick}`,
  autoArchiveDuration: 'MAX',
  startMessage: message.id,
});

相关文章