Discord.py开发中Embed嵌入GIF无法正常显示问题求解
问题原因
- 你传入
set_image的链接是Giphy的网页详情页地址,不是GIF的直接资源链接。Discord Embed的图片字段仅支持指向图片/GIF文件的直链,网页链接无法被识别渲染。 - 你的参数校验逻辑存在错误:你给
member参数设置了discord.Member类型注解但没设置默认值,当用户调用指令没有指定目标成员时,discord.py会直接抛出参数缺失错误,不会进入你写的if member is None判断分支。同时你最后的return member == ctx.author属于无用逻辑,不会产生任何作用。
修复方案
- 替换为GIF直链
在Giphy的GIF展示页面右键点击GIF素材,选择「复制图片地址」即可获取到GIF的直链,用这个直链替换掉原来的网页链接。 - 修复参数校验逻辑
给member参数添加默认值None,删除无用的return语句,可额外补充成员互动的提示文本提升使用体验。
修复后参考代码
@client.command() async def hug(ctx, member: discord.Member = None): embed = discord.Embed(title="🤗 拥抱") # 替换为你自己获取到的GIF直链即可 embed.set_image(url="此处替换为GIF直链") # 没有指定成员时触发自抱逻辑 if member is None: await ctx.send("你要抱自己吗?🥺") await ctx.send(embed=embed) return # 正常调用时发送互动提示 await ctx.send(f"{ctx.author.mention} 紧紧抱住了 {member.mention}!", embed=embed)
内容的提问来源于stack exchange,提问作者Asmon Erik
相关产品推荐
相关产品推荐

