Discord.py应用表情符号ID相关问题:名称获取与批量获取方案咨询
解答:Discord.py 获取应用自定义表情相关问题
能否仅通过名称获取应用自定义表情?
不能直接通过名称查询应用表情——Discord API没有提供直接按名称检索应用表情的接口,必须先获取所有应用表情集合,再自行做名称匹配。
获取所有应用表情并关联名称与ID的方法
Discord.py 2.5新增的await fetch_application_emojis()完全可以解决你的问题,它能拉取机器人所属应用的全部自定义表情。具体实现思路:
- 调用该方法获取应用表情列表
- 遍历列表,根据名称筛选目标表情
示例代码:
async def get_application_emoji(bot, target_name): # 获取所有应用表情 app_emojis = await bot.fetch_application_emojis() # 匹配名称,找不到返回None return next((emoji for emoji in app_emojis if emoji.name == target_name), None)
这个逻辑和你之前用get(bot.emojis, name=...)类似,但作用范围是应用级表情,而非机器人所在服务器的表情。
为什么之前的方法无效?
bot.emojis只包含机器人已加入服务器的自定义表情,而应用表情属于Discord应用本身(可跨服务器使用),所以这个属性无法访问到应用表情。
内容的提问来源于stack exchange,提问作者Emmitt Power
相关产品推荐
相关产品推荐

