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

如何通过Discord Bot发送动态Emoji?现有代码仅输出表情名称如何解决

问题原因及解决方法
  • 首先确认Emoji ID填写无误,且该动态Emoji属于你的Bot已加入的任意服务器,client.get_emoji()仅能获取Bot可访问范围内的Emoji对象,如果ID错误、Emoji已被删除/不在Bot可访问的服务器中,会返回空值,发送时仅显示名称
  • 确认Bot在你要发送消息的频道拥有使用外部表情权限,否则跨服务器的表情发送后也仅会显示名称
  • 你也可以直接使用Discord原生的表情格式化写法发送,无需提前获取Emoji对象:动态Emoji格式为<a:表情名称:EmojiID>,静态Emoji格式为<:表情名称:EmojiID>

修正后代码示例

# 方法1:先校验Emoji获取结果再发送
patrick = client.get_emoji(895366056221220955)
if message.content.lower() == "patrick":
    if patrick:
        await message.channel.send(f"{patrick}")
    else:
        # 调试用,确认是否获取到了emoji对象
        print("未获取到对应Emoji,请检查ID或服务器权限")

# 方法2:直接使用原生格式发送(无需提前获取对象,更适合动态Emoji)
if message.content.lower() == "patrick":
    # 注意把占位的patrick替换成该Emoji的实际名称
    await message.channel.send("<a:patrick:895366056221220955>")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:09:00