如何从用户id discord.py中获取Member对象



我想从用户的Id中获得用户的昵称。我有以下代码:

id = 235088799074484224 # User Id
member2 = bot.guilds[guild_id].get_member(id)
print(member2.nick)

但代码给出了一个错误:

Traceback (most recent call last):
  File "C:UsersVladPycharmProjectsuntitledvenvlibsite-packagesdiscordclient.py", line 333, in _run_event
    await coro(*args, **kwargs)
  File "C:/Users/Vlad/PycharmProjects/untitled/static/bot.py", line 61, in on_message
    messages = await clean_up_messages(messages)
  File "C:/Users/Vlad/PycharmProjects/untitled/static/bot.py", line 21, in clean_up_messages
    nick = await replace_nick(i.author.id)
  File "C:/Users/Vlad/PycharmProjects/untitled/static/bot.py", line 15, in replace_nick
    return member2.display_name  # or .nick
AttributeError: 'NoneType' object has no attribute 'display_name'

这个错误似乎是由于member2总是None。无论我使用什么id,它都是None
我已经阅读了文档,bot.guilds[guild_id]是正确的,但get_member()函数似乎导致了错误
如何解决此问题?

在discord.py(1.5.x(的新版本中,有一些关于Intents的更新。意图就像权限,你必须定义它才能获得通道、成员(如guild.get_member()(和一些事件等。你必须在定义client = discord.Bot(prefix='')之前定义它。

import discord
intents = discord.Intents().all()
client = discord.Bot(prefix='', intents=intents)

如果你想获得更多关于Intents的信息,你可以看看API参考资料。

相关内容

最新更新