当前位置: 首页 > 知识库问答 >
问题:

不和。15分钟后JS斜杠命令无效的Webhook标记

施轶
2023-03-14

我最近用discord在node.js做了一个冷却不和谐bot。JS库,因为它我想使用新的不和谐。JS v13能够做斜线命令。结果我的循环出现了错误

DiscordAPIError: Invalid Webhook Token

我在交互中得到一个editReply错误。

这是完整的错误

C:\Users\Administrator\Desktop\Discord Lab Countdown brokers\node_modules\discord.js\src\rest\RequestHandler.js:298
  throw new DiscordAPIError(data, res.status, request);
        ^
DiscordAPIError: Invalid Webhook Token
at RequestHandler.execute (C:\Users\Administrator\Desktop\Discord Lab Countdown brokers\node_modules\discord.js\src\rest\RequestHandler.js:298:13)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RequestHandler.push (C:\Users\Administrator\Desktop\Discord Lab Countdown brokers\node_modules\discord.js\src\rest\RequestHandler.js:50:14)
at async InteractionWebhook.editMessage (C:\Users\Administrator\Desktop\Discord Lab Countdown brokers\node_modules\discord.js\src\structures\Webhook.js:268:15)
at async CommandInteraction.editReply (C:\Users\Administrator\Desktop\Discord Lab Countdown brokers\node_modules\discord.js\src\structures\interfaces\InteractionResponses.js:139:21)
at async Timeout._onTimeout (C:\Users\Administrator\Desktop\Discord Lab Countdown brokers\commands\command.js:45:21) {

该命令工作正常,但机器人在15分钟后崩溃。我听说代币会在15分钟后过期??但是我不知道这是不是真的,如果是真的,如何在循环运行时重新生成它?

下面是命令代码:

client.on('interactionCreate', async interaction => {
    
    // ...
    
    if (interaction.commandName === 'command') {
        // ...
        try {
            // ...
            let time = 60;
            let current = 0;
            
            await interaction.reply({embeds: [myembed]});

            // ...

            let interval = setInterval(async () => {
                current++;
                await interaction.editReply({embeds: [newembed]});
                if(current == time)
                {
                    // ...
                    await interaction.editReply({embeds: [newembed], components: [button_row]});  <--- error points here
                    clearInterval(interval);
                }
            }, 60000);
        } catch(err) {
            await interaction.reply({embeds: [error]});
        }
                
    }
});

我真的需要帮助,因为我在互联网上找不到任何关于它的东西,

非常感谢:D

编辑:我注意到在不和谐.js文档中,斜杠命令不能在15分钟后过期,所以我只是推迟了命令的回复,并使用正常消息代替了交互.channel.send()

共有1个答案

白坚壁
2023-03-14

您需要使用< code > MessageComponentInteraction # defer preply()方法来回复等待履行promise的交互,这是因为如果在< code>3000毫秒(即3秒)内没有任何操作,则任何交互都会因不一致而无效,如果您继续执行该操作,您的代码将类似于以下内容:

 try {
            // ...
            let time = 60;
            let current = 0;
            await interaction.deferReply()
            await interaction.editReply({embeds: [myembed]});

            // ...
            let interval = setInterval(async () => {
                current++;
                await interaction.editReply({embeds: [newembed]});
                if(current == time)
                {
                    // ...
                    await interaction.editReply({embeds: [newembed], components: [button_row]});  <--- error points here
                    clearInterval(interval);
                }
            }, 60000);
        } catch(err) {
            await interaction.reply({embeds: [error]});
        }
                
    }
 类似资料:
  • 最近,我开始研究一个不和谐的机器人,并添加了斜杠命令。 这是我的interactionHandler.js 有没有办法删除命令,因为我找不到方法。我想得到命令的ID,但是我不知道怎么做。感谢所有的帮助者:)Discord.js v13

  • 问题内容: 我正在尝试将AngularJS 与结合使用。但是,当我设置哈希时,AngularJS在其后添加一个正斜杠。 例如,网址为:。当我不包括AngularJS库时,我可以单击链接,然后转到。 但是,当我包含AngularJS并单击链接时,它将导致$ anchorScroll无法工作。 编辑$ anchorScroll不起作用 起始URL是。当我添加类别时,它应该转到(其中id是新ID)并向下

  • 我正在使用discord.js和WOKCommands来使用斜杠命令,但是当在discord中输入时,它给我一个错误“无效的交互应用程序命令” 下面是该命令的代码: 仅当我也需要显示主脚本的代码时,该命令的代码才是命令的代码。我会这样做的。

  • 本文向大家介绍Python中的左斜杠、右斜杠(正斜杠和反斜杠),包括了Python中的左斜杠、右斜杠(正斜杠和反斜杠)的使用技巧和注意事项,需要的朋友参考一下 首先,"/"左倾斜是正斜杠,"\"右倾斜是反斜杠,可以记为:除号是正斜杠一般来说对于目录分隔符,Unix和Web用正斜杠/,Windows用反斜杠,但是现在Windows (一)目录中的斜杠们 python读文件需要输入的目录参数,列出以下

  • 我有一个小型的不和谐机器人,我3年前在Typescript中制作,并出现在80多个公会中,我最近决定将其从不更新为,同时添加著名的斜杠命令。 但是当我用discord.js的< code > routes . applicationguildcommands 例程在我的“ready”事件中注册它们时,当我映射到我的机器人所在的每个公会时,methode < code > routes . appl

  • 我正在编写一个具有音乐支持的多功能不和谐机器人,需要在这个单一功能方面的帮助。 有一个play命令,它发送包含音乐信息的嵌入消息,当执行stop命令时,它必须编辑play命令发送的嵌入内容。 这是我的代码的最小化版本(仅作为示例): 在这种情况下,“.editReply”只是在停止命令之后发送新的嵌入。这可能比我想象的要容易得多,我知道我需要获得“播放”交互来编辑该交互发送的特定回复,无论是通过W