discord.py v2如何获取成员头像?旧版avatar_url属性报错如何解决?
问题原因
discord.py v2对用户、成员对象的头像相关属性做了破坏性变更,旧版本的avatar_url属性已被完全移除,需要通过新的API获取头像链接。
修正后可运行代码
@client.command(aliases=["av"]) async def avatar(ctx, *, avamember : discord.Member=None): # 未指定成员时默认使用指令调用者 target_user = avamember if avamember else ctx.author # 优先取自定义头像,无自定义头像则取系统默认头像 avatar_asset = target_user.avatar if target_user.avatar else target_user.default_avatar # 获取头像CDN链接 user_avatar_url = avatar_asset.url embed2 = discord.Embed(title=f"{target_user}") embed2.set_image(url=user_avatar_url) await ctx.send(embed=embed2)
补充说明
- 新的头像对象为
discord.Asset类型,除了直接取url外,还可以调用with_size()方法指定返回头像的分辨率,比如avatar_asset.with_size(4096)可以获取4096*4096分辨率的高清头像。 - 如果需要获取用户在服务器专属的头像,可以调用
target_user.guild_avatar属性,该属性仅在用户设置了服务器专属头像时存在,否则为None。
内容的提问来源于stack exchange,提问作者Crazy Jaguar
相关产品推荐
相关产品推荐

