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

discord.py列出机器人所在Guild/服务器的代码无效如何解决

问题分析
  • 你在on_ready事件函数内定义了serverList()异步函数,但从未调用该函数,遍历打印服务器ID的逻辑完全不会被执行。
  • 代码缩进不符合Python语法规范,serverList函数的缩进层级错误,存在语法问题。
  • discord.py 2.0及以上版本默认关闭部分敏感意图,若未手动开启Guild相关意图,client.guilds无法获取到完整的已加入服务器列表。
修改后代码
import discord

# 配置所需意图
intents = discord.Intents.default()
intents.guilds = True
# 初始化客户端时传入意图配置
client = discord.Client(intents=intents)

# 替换为你自己的机器人Token
token = "YOUR_BOT_TOKEN"

@client.event
async def on_ready():
    print(f'CONSOLE: We have logged in as {client.user}')
    print("已加入的服务器ID如下:")
    # 直接执行遍历逻辑,无需定义未调用的嵌套函数
    for guild in client.guilds:
        print(guild.id)

client.run(token)
注意事项
  • 代码运行前需要先前往Discord开发者后台,进入对应机器人的Bot设置页面,下滑到「Privileged Gateway Intents」区域,开启Server Members Intent开关并保存配置,否则无法正常获取服务器列表。
  • 简单逻辑直接写在事件回调内即可,不要定义无意义的、不调用的嵌套函数,避免出现逻辑不执行的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 12:01:15