Discord.py通过URL为Embed字段添加图片报错,如何实现该需求?
问题原因
Discord.py 的 add_field() 方法仅支持 name、value、inline 三个合法参数,不存在 url 入参,因此你传入 url 参数会直接触发类型错误。url 参数仅可用于 Embed 本身的 title、author 等全局属性,不可用于单个字段。
可行性说明
该需求可以实现,不需要强制将图片转换为emoji,有两种常用的适配方案。
可行解决方案
- 方案1:字段内嵌入Markdown图片语法
Discord 的 Embed 内容支持有限Markdown语法,你可以直接将图片的Markdown写法插入字段的name或value属性中,即可实现字段绑定对应图片的效果:
for x in STITEMS: counter += 1 # 图片放在字段标题位置,与文字同行显示 embedVar.add_field( name=f" Starting item #{counter}", value="此处可填写字段描述内容,无额外内容可填空字符串", inline=True )
如果需要图片单独占字段的展示区域,把图片语法放在value属性中即可。
- 方案2:转换为自定义emoji(适配行内小图标场景)
如果你需要的是和文字高度对齐的小尺寸行内图标,优先选择该方案:将图片上传到对应服务器的自定义emoji库,之后直接在字段的name属性中插入emoji标识即可,显示效果比Markdown图片更稳定,适配所有客户端。
注意事项
- 插入Embed的图片链接必须是公开可访问的直链,不能携带访问验证限制,否则会显示加载失败
- 单个Embed最多支持25个字段,注意
STITEMS列表长度不要超过上限 - Markdown图片在部分移动端Discord客户端可能不会行内显示,会单独占一行,对显示效果要求高的场景优先选择自定义emoji方案
内容的提问来源于stack exchange,提问作者Ognjen Ognjanovic
相关产品推荐
相关产品推荐

