Discord.py从id/标记获取用户对象

Discord.py从id/标记获取用户对象,discord,discord.py,Discord,Discord.py,因此,我试图从id或标记获取用户对象,但我使用的是用户帐户而不是机器人帐户,因此我无法使用get\u user\u info() 有没有办法在用户帐户上执行此操作?如果您使用的是命令,则可以使用转换器: @bot.command(pass_context=True) async def mycommand(ctx, user: discord.User): # user is a User object 另一方面,您可以使用获取您可以看到的所有成员对象 from discord.uti

因此,我试图从id或标记获取用户对象,但我使用的是用户帐户而不是机器人帐户,因此我无法使用get\u user\u info()
有没有办法在用户帐户上执行此操作?

如果您使用的是
命令
,则可以使用转换器:

@bot.command(pass_context=True)
async def mycommand(ctx, user: discord.User):
    # user is a User object
另一方面,您可以使用获取您可以看到的所有
成员
对象

from discord.utils import get

user = get(bot.get_all_members(), id="1234")
if user:
    # found the user
else:
    # Not found the user
您可以使用:

ctx.message.server.get_member("id") or message.server.get_member("id")

这将返回一个discord.Member对象。

如果您知道用户id,我建议改用。

ctx.message.server.get_成员(id)或message.server.get_成员(id)


我无法对上一个答案发表评论(因为声誉),但请确保此处的id为int-type。

对我来说,只有这个有效,因此如果其他答案都无效,您可以尝试以下方法:

user = await message.guild.query_members(user_ids=[userid]) # list of members with userid
user = user[0] # there should be only one so get the first item in the list

如果缓存中有,olny就会工作。否则请使用fetch\u user