Discord 机器人令牌自行重置

Posted

技术标签:

【中文标题】Discord 机器人令牌自行重置【英文标题】:Discord bot token resetting itself 【发布时间】:2019-09-29 14:30:06 【问题描述】:

我收到了来自 discord 的关注消息,他们不断重置我的机器人令牌。任何可能出现问题的帮助。

您的机器人 TEST 似乎在短时间内连接到 Discord 超过 1000 次。由于这种行为通常是错误导致的,因此我们已着手重置您的机器人令牌。

【问题讨论】:

也许提供使用的代码,以便有人可以调试问题。 这里是代码 [链接] (pastebin.com/nr0wSpSm) 您能解释一下您要完成的工作吗?似乎您正在实例化许多不和谐客户端并尝试登录所有客户端。您只需要创建一个 Discord 客户端,并且只需登录一次。另外,您能否将代码直接粘贴到问题正文中,而不是粘贴到 pastebin 中? @Gruntzy,代码太大,不适合问题正文。 你能解释一下你的机器人应该用你的 start 方法和你的 client.on("message", ... ) 做什么吗?您的代码每次处理消息时都会创建一个新客户端,这是不必要的。 【参考方案1】:

在你的消息事件中

client.on('message', async msg => 
    msg.content = filter(msg.content)

    let channelid1 = 'xxxx' //
    let channelid2 = 'xx' //

    if (msg.channel.id == channelid1 && msg.author.id != client.user.id) 
        let attach = msg.attachments.array()
        let test = getUrls(msg.content);
        let arr = Array.from(test);
        let emojiname = ''

        if (msg.content.startsWith("<:uparrow:")) 
            emojiname = 'uparrow'
         else if (msg.content.startsWith("<:downarrow:")) 
            emojiname = 'downarrow'
        

        let name = msg.guild.emojis.find(emoji => emoji.name == emojiname);
        let embed = new Discord.RichEmbed()
            .setDescription(msg.content)
            .setColor('#A9A9A9')

        if (name) 
            start("Bot token xxxxx", 'Landing Discord channel ID xxx', embed, name)
         else 
            start("Bot token xxxxx", 'Landing Discord channel ID xxx', embed)
        

        if(arr.length > 0)
        for(let i in arr)
         start("Bot token xxxxx", 'Landing Discord channel ID xxx', arr[i])
         
        

        if (attach.length > 0) 
            start("Bot token xxxxx", 'Landing Discord channel ID xxx', attach[0].url)
        
client.login('Client token xxxx') //

您需要删除调用登录功能

client.login('Client token xxxx')

因为您不希望每次触发事件时您的机器人都重新登录。

【讨论】:

我试过了。注释掉 //client.login(token) Bot 上线但不转发消息。恢复回来,消息开始出现。可能我需要别的东西 我的错,你有两个client.login,删除第二个看起来像这样的client.login('Client token xxxx') 第一个是client.login(token),第二个是提到实际令牌ID的地方client.login('11111111')。如果我删除第二个,那么机器人将无法登录。【参考方案2】:

据我所知,每次触发事件时,它都会再次登录您的机器人。 Discord 识别出这一点,然后重置您的令牌。我建议删除

client.login('Client token xxxx') //

并将其排除在任何事件之外。你也应该删除

client.login(token)

【讨论】:

以上是关于Discord 机器人令牌自行重置的主要内容,如果未能解决你的问题,请参考以下文章

Discord 在我的 GitHub 上编译的 dll 中找到了机器人令牌

Discord.js ReactionCollector 帮助菜单 - 重置表情符号

Discord 错误错误 Discord.js 中的无效令牌

使用带有 javascript 和 html 的用户令牌离开 Discord 服务器

discord.js SyntaxError:意外的令牌? [复制]

如何在 github 上隐藏不和谐令牌