Discord.py使用自定义表情报错,请求技术帮助
解决Discord.py发送自定义表情错误问题
先修正代码中的基础错误
你的代码里intents变量未初始化,Discord.py v2.x版本要求必须显式设置intents,否则会引发权限相关错误。修正后的基础代码:
import discord from discord.ext import commands # 初始化并配置必要的intents intents = discord.Intents.default() intents.message_content = True # 必须开启,否则机器人无法处理消息内容 client = commands.Bot(intents=intents, command_prefix="$") @client.event async def on_message(msg): if msg.author == client.user: return await msg.channel.send("<:doory_fruit:1062084428228206657>") client.run("你的机器人Token")
针对两种错误的具体解决方案
错误1:仅输入表情名称时出错
Discord的自定义表情必须使用<:表情名称:表情ID>的完整格式才能被识别,单独输入表情名称会被当作普通文本,无法解析为表情,必须使用完整格式发送。
错误2:使用名称+ID格式时出错
可能的原因及解决办法:
- 机器人未加入表情所在服务器:自定义表情仅对所在服务器内的成员/机器人可见,确保你的机器人已经加入了该表情所属的服务器。
- 表情ID或名称不匹配:右键Discord中的表情,选择「复制链接」,链接末尾的数字即为正确ID,确认你使用的ID和名称与表情完全一致。
- 机器人权限不足:确保机器人在目标频道拥有「发送消息」权限;如果表情来自其他服务器,还需要机器人拥有「使用外部表情」的权限。
- intents配置不全:已在基础代码中开启
message_content,这是机器人处理消息和发送内容的必要权限。
内容的提问来源于stack exchange,提问作者Yuki
相关产品推荐
相关产品推荐

