如何在Discord.py中获取用户的ID

时间:2018-10-29 19:51:16

标签: python python-3.x discord discord.py

我们正在为Discord Server写一个机器人,该机器人应该提到启动特定命令的人。为此,我需要用户的ID,但不知道如何获取它。

@bot.command()
async def name():

author = discord.User.id

await bot.say(str(author))

我们以这种方式进行了尝试,因为文档说,用户的ID在User类中。但是我们唯一得到的是

<member 'id' of 'User' objects>

在我们眼中,我们获得了正确的参数,但无法获取ID本身?我们需要以某种方式进行转换吗?

3 个答案:

答案 0 :(得分:2)

要使机器人在异步分支中提及消息的作者,您需要通过调用命令ctx.message的消息来引用该作者:

@bot.command(pass_context=True)
async def name(ctx):
    await bot.say("{} is your name".format(ctx.message.author.mention))

要获取其ID:

@bot.command(pass_context=True)
async def myid(ctx):
    await bot.say("{} is your id".format(ctx.message.author.id))

答案 1 :(得分:0)

2020年更新的代码:

@Bot.command()
async def name(ctx):
    user = await Bot.fetch_user('<user id>')
    await user.send('hey')

答案 2 :(得分:-1)

您需要在函数名称中提供一个参数。每个bot.command需要至少具有一个称为“上下文”的参数。如:

async def name(ctx):
   author = ctx.message.author
   user_name = author.name