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

如何在discord.py中让Bot上线时自动获取打印guild邀请链接

在discord.py中实现Bot上线自动获取服务器邀请链接

核心思路

利用discord.py的on_ready事件(Bot完成登录初始化后触发),遍历Bot加入的所有服务器,调用API获取每个服务器的所有邀请链接并打印。

前置要求

  1. Bot在目标服务器中需拥有创建邀请或管理服务器权限,否则无法获取邀请链接。
  2. 在Discord开发者门户的Bot页面,确保启用Guilds Intent(默认已启用,若未开启需手动勾选)。

完整代码实现

import discord
from discord.ext import commands

# 配置Intent,确保能正常获取服务器数据
intents = discord.Intents.default()
intents.guilds = True  # 显式启用服务器相关Intent

bot = commands.Bot(command_prefix="!", intents=intents)

@bot.event
async def on_ready():
    print(f"已登录:{bot.user.name} (ID: {bot.user.id})")
    # 遍历所有Bot加入的服务器
    for guild in bot.guilds:
        print(f"\n=== 服务器:{guild.name} (ID: {guild.id}) ===")
        try:
            # 获取当前服务器的所有邀请链接
            invites = await guild.invites()
            if invites:
                for idx, invite in enumerate(invites, 1):
                    print(f"{idx}. 链接:{invite.url}")
                    print(f"   创建者:{invite.inviter.name if invite.inviter else '未知'}")
                    print(f"   剩余使用次数:{'无限' if invite.max_uses == 0 else invite.max_uses}")
            else:
                print("该服务器暂无有效邀请链接")
        except discord.Forbidden:
            print("权限不足:Bot无法获取该服务器的邀请链接")
        except Exception as err:
            print(f"获取失败:{str(err)}")

# 替换为你的Bot Token
bot.run("你的Bot令牌")

关键说明

  • on_ready事件:Bot完全上线后仅触发一次,适合执行初始化类任务。
  • guild.invites():异步方法,返回当前服务器的所有邀请对象列表,每个对象包含url(邀请链接)、inviter(创建者)等属性。
  • 异常处理:针对权限不足、网络错误等情况捕获异常,避免Bot意外崩溃。

内容的提问来源于stack exchange,提问作者Meme.rip

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:50:33