Discord.py 如何获取斜杠命令作者id

Discord.py how to get slash command author id

我想获取使用斜线命令的用户的id。我尝试使用:

author = ctx.message.author.id

但是我得到这个错误:

AttributeError: 'NoneType' object has no attribute 'author'

我的完整代码:

slash = SlashCommand(Bot,sync_commands=True)

@slash.slash(
    name="getid",
    description="description",
    guild_ids=[guild id here]
)
async def _getid(ctx:SlashContext):
    author = ctx.message.author.id
    await ctx.send(author)

ctx.author.id 应该可以。我认为您无法通过交互访问消息。

如果您使用 discord.pyapp_commands,您可以使用 interaction.user.id

@bot.tree.command(name='userid', guild = discord.Object(id=...)) 
async def userid(interaction: discord.Interaction):
    await interaction.response.send_message(f"The id of the user that invoked this command is {interaction.user.id}")