You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.py Cog中Embed无法发送但普通消息正常求助

解决Discord机器人Embed消息发送失败的问题

以下是针对你遇到的Embed消息无法发送问题的排查方向和修复方案:

  • 确认机器人权限:必须确保机器人在目标服务器拥有Embed Links权限,缺少该权限时,发送Embed的请求会被Discord服务器静默拒绝,不会返回任何报错。
  • 清理Embed标题的Markdown格式:Discord的Embed标题对Markdown支持有限,你使用的***CAUTION***三重星号格式可能导致解析异常,建议改用纯文本或单星号格式的标题,比如"CAUTION"或"*CAUTION*"。
  • 移除冗余的普通消息:当前代码同时发送普通消息和Embed,虽然这不是发送失败的直接原因,但可以先移除普通消息,仅保留Embed发送逻辑,减少干扰便于测试。
  • 升级discord.py版本:旧版本的discord.py可能存在Embed发送的兼容性问题,执行pip install --upgrade discord.py升级到最新稳定版。
  • 添加异常捕获:为发送Embed的代码块添加异常捕获,便于查看具体错误信息:
try:
    await ctx.send(embed=embed)
except Exception as e:
    print(f"发送Embed时出错: {e}")

修复后的示例代码:

@commands.command()
async def register(self, ctx, name):
    """registers a user"""
    discord_id = ctx.author.id
    username = name

    if main.check_if_username_used(username) > 0:
        embed = discord.Embed(title="CAUTION", description="That username already exists.  Please select another.", color=discord.Color.red)
        try:
            await ctx.send(embed=embed)
        except Exception as e:
            print(f"发送Embed错误: {e}")

内容的提问来源于stack exchange,提问作者Kyle Skillins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 07:12:41