【问题标题】:How to get a mentioned user's avatar URL with discord.py?如何使用 discord.py 获取提到的用户头像 URL?
【发布时间】:2020-05-09 08:14:22
【问题描述】:

如何获取提及的用户头像?
我可以获得提到的用户 ID,但我不知道如何使用它,例如 message.author.avatar_url
我可以把它变成(Userid).author.avatar_url吗?

我已经通过对消息的内容进行切片获得了提到的用户 ID。

【问题讨论】:

  • 看来这个问题可能已经在reddit 上得到了回答。如果您能够在那里找到答案,您应该在此处使用相关信息回答您自己的问题并接受答案

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


【解决方案1】:
client = commands.Bot(command_prefix='-')

@client.command(name='avatar', help='fetch avatar of a user')
async def dp(ctx, *, member: discord.Member = None):
    if not member:
        member = ctx.message.author
    userAvatar = member.avatar_url
    await ctx.send(userAvatar)

命令类似于 => '-avatar' 或 '-avatar [user]'

附:不要在“-avatar”之后和提及用户之前使用 [ ]

如果没有提到用户,它将获取发送命令的用户的头像

【讨论】:

    【解决方案2】:

    如果您使用the commands extension,则可以使用MemberConverterUserConverter 分别获取MemberUser 对象。否则,您可以使用Message 对象的Message.mentions 属性来获取消息中提到的Members 的列表。

    如果您已经拥有用户 ID,则可以使用 How do I get a specific model? section of the FAQ in the documentation 中介绍的方法来检索 MemberUser 对象。

    然后您可以使用MemberUser 对象的avatar_url 属性。

    【讨论】:

      【解决方案3】:
      author = ctx.message.author
      pfp = author.avatar_url
      

      Author 创建一个对象,可以使用字符串,例如username#0000

      pfp(个人资料图片)是一种可以在嵌入中使用的资产

      embed = discord.Embed()
      embed.set_image(url=pfp)
      
      await ctx.send(embed=embed)
      

      【讨论】:

        【解决方案4】:

        你可以用这个:

        author = message.author
        await message.channel.send(author.avatar_url)
        

        关于使用消息参数

        【讨论】:

          【解决方案5】:

          如果您使用的是 discord.py v2,则为:message.author.avatar

          检查这个:https://discordpy.readthedocs.io/en/master/api.html?highlight=member#discord.Member

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-04-23
            • 1970-01-01
            • 2019-04-01
            • 1970-01-01
            • 1970-01-01
            • 2021-08-02
            • 2019-02-16
            • 1970-01-01
            相关资源
            最近更新 更多