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

Discord bot获取外部animated emoji用作reaction报Unknown Emoji错误求助

错误原因
  1. get_emoji() 方法仅支持传入整数类型的emoji ID作为参数,你传入CDN链接的写法完全不符合要求,调用后只会返回None,后续传入add_reaction()自然会触发报错。
  2. 核心限制:Discord API明确规定,自定义表情(包括动图表情)要用作消息反应时,使用的机器人必须是该表情所属服务器的成员;如果机器人未加入表情归属的服务器,无论你用ID还是<a:name:id>格式的表情代码调用,都会返回Unknown Emoji错误。
    你之前可以通过链接发送表情,本质是发送CDN图片链接,和调用表情实体是完全不同的接口逻辑,不受该规则限制。
修复步骤

如果你要正常使用该表情作为反应,按以下流程操作:

  • 先将你的机器人邀请到该动图表情所属的Discord服务器
  • 提取表情链接中的数字ID,你给出的链接中819465471786221570即为对应表情ID
  • 修正后的代码如下:
if message.channel.id == 852947148310839303: 
    # 传入整数格式的表情ID获取表情对象
    emoji = bot.get_emoji(819465471786221570)
    # 增加非空判断,避免表情不存在时触发报错
    if emoji:
        await message.add_reaction(emoji)
    return
替代方案

如果无法将机器人加入表情所属服务器,可以将该动图表情下载后,上传到你自己的机器人已加入的服务器作为自定义表情,替换为新的表情ID调用即可。


内容的提问来源于stack exchange,提问作者john meek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 19:06:14