You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让discord.js机器人生成其所在Discord服务器的邀请链接?

解决方案

只要你的机器人仍留存于目标Discord服务器、且持有创建即时邀请的权限,就可以生成有效邀请链接。由于你当前无法进入服务器发送指令触发机器人逻辑,直接把邀请生成逻辑写在ready事件中,机器人启动后会自动执行生成操作,不需要额外交互,适配你当前使用的discord.js v13版本的完整代码如下:

const { Client, Intents } = require('discord.js')
const { prefix, token } = require("./config.json");
const ytdl = require("ytdl-core");

const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES]})
  
client.on('ready', async () => {
    console.log(client.user.tag + " 已上线")
    // 遍历机器人所在的所有服务器生成邀请
    client.guilds.cache.forEach(async guild => {
        // 如果你知道目标服务器ID,可解开下面注释,替换成对应ID后只会生成目标服务器的邀请
        // if(guild.id !== '替换为你的目标服务器ID') return
        try {
            // 筛选机器人有权限创建邀请的第一个文字频道
            const validChannel = guild.channels.cache.find(channel => 
                channel.type === 'GUILD_TEXT' && channel.permissionsFor(guild.me).has('CREATE_INSTANT_INVITE')
            )
            if(!validChannel) {
                console.log(`服务器「${guild.name}」无有效频道创建邀请,请检查机器人权限`)
                return
            }
            // 生成邀请,默认设置为永不过期、仅可使用1次,避免链接泄露
            const invite = await validChannel.createInvite({
                maxAge: 0,
                maxUses: 1,
                unique: true
            })
            console.log(`服务器「${guild.name}」邀请链接:${invite.url}`)
        } catch (err) {
            console.log(`生成服务器「${guild.name}」邀请失败,错误信息:`, err)
        }
    })
})


client.on('message', message => {
    // 原有消息指令代码可保留,无需改动
   
})


client.login(token);

使用注意事项

  • 运行代码前先确认机器人在目标服务器的角色已勾选创建即时邀请权限,否则会生成失败
  • 如果你记得目标服务器的ID,建议解开代码里的ID判断注释,填入后只会输出目标服务器的邀请,避免多余信息干扰
  • 启动机器人后直接查看终端控制台的输出,拿到链接点击即可加入服务器
  • 成功进入服务器后,建议立刻删除这段自动生成邀请的代码,或者把邀请的maxUses保持为1,用完链接自动失效,避免安全隐患

如果运行后提示无权限创建邀请,先确认机器人没有被移出服务器、角色权限没有被修改。

内容的提问来源于stack exchange,提问作者SnowyField

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 07:12:28