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

Discord.py中bot.get_all_members方法失效,无法输出服务器成员列表到终端

问题排查
  • bot.get_all_members是可调用方法,你当前代码没有加()执行调用,直接打印只会输出方法的内存地址,不会返回实际成员数据
  • discord.py v1.5及以上版本,仅在代码中开启intents.members配置不生效,还需要前往Discord开发者平台的对应Bot管理页,手动开启Server Members Intent特权网关权限
  • get_all_members方法已在discord.py v2.0+版本中被官方弃用,更稳妥的实现方式是直接遍历机器人接入的服务器下的members属性获取成员列表
修复后代码
import os
import discord
from discord.ext import commands
from dotenv import load_dotenv

intents = discord.Intents.default()
intents.members = True 

load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
bot  = commands.Bot(command_prefix = '£', intents=intents) 


@bot.event
async def on_ready():
    print(f'{bot.user} has connected to Discord!')
    # 遍历所有机器人已加入的服务器
    for guild in bot.guilds:
        print(f"\n服务器名:{guild.name} | 服务器ID:{guild.id} | 总成员数:{guild.member_count}")
        print("成员清单:")
        # 遍历当前服务器所有成员输出
        for member in guild.members:
            print(f"- 用户名:{member.name} | 用户ID:{member.id}")
注意事项
  • 完成代码修改后务必先去Discord开发者后台开启Server Members Intent权限,否则依然只能获取到机器人自身的信息
  • 若机器人加入了多个服务器,代码会按顺序打印所有服务器的成员列表
  • 确认邀请机器人进服的链接已包含bot权限scope,且机器人在目标服务器拥有查看成员的权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:27:02