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

Discord.py发送自定义emoji异常:执行]rad命令仅显示表情ID字符串

Discord机器人自定义表情无法渲染问题解决

核心原因

自定义表情无法正常渲染通常由格式错误、权限不足或直接硬编码字符串容错性低导致,可按以下步骤排查修复:

  • 核对表情格式与ID正确性:在Discord聊天框输入\:die1:发送,即可得到该表情的标准转义字符串,确认与你代码中写入的<:die1:893805362019467295>完全一致,无多余空格、字符拼写错误。如果是动态GIF表情,格式需要调整为<a:die1:表情ID>。
  • 确认表情使用权限:如果该表情属于当前命令触发的服务器,确认机器人角色拥有「发送表情」权限;如果表情属于其他服务器,需要表情所属服务器开启「允许外部使用表情」设置,同时机器人在当前服务器拥有「使用外部表情」权限。
  • 改用API获取表情对象发送:直接硬编码表情字符串容错率低,推荐通过官方API获取表情对象后再发送,参考代码如下:
import discord

@bot.command(name='rad')
async def rolladice(ctx):
    # 从当前服务器表情列表中匹配指定名称的表情
    die_emote = discord.utils.get(ctx.guild.emojis, name="die1")
    # 若已知表情唯一ID,也可直接通过ID获取(支持跨服表情)
    # die_emote = await bot.fetch_emoji(893805362019467295)
    if die_emote:
        await ctx.send(die_emote)
    else:
        await ctx.send("未找到对应表情,请检查名称/ID配置")

额外注意

如果使用的是discord.py的分支库(如nextcord、pycord),只需将上述代码中discord.utils.get替换为对应库的同名工具方法即可,逻辑保持一致。

内容的提问来源于stack exchange,提问作者Rovindu Thamuditha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 21:27:04