Discord Py机器人添加表情反应失效问题求助
嘿,我帮你排查下这段代码的问题哈~
问题排查与修复方案
我看了你的代码,发现两个关键问题导致它无法正常运行:
1. 错误的消息反应调用对象
你现在直接对ctx(上下文对象)调用add_reaction(),但Discord.py里的add_reaction()方法是属于消息对象的,不是上下文对象。你需要先把发送的消息存成变量,再对这个变量调用反应方法。
2. 区域指示器emoji的格式不正确
你写的'regional_indicator_b'这种字符串格式,Discord没办法直接识别成对应的emoji。如果是系统自带的区域指示器,直接用对应的emoji字符(比如🇧、🇪)就行;如果是自定义emoji,才需要用<:emoji_name:emoji_id>的格式。
修正后的代码
emojis = ['🇧', '🇪'] # 使用系统自带的区域指示器emoji字符 latency = (client.latency * 1000).__round__() # 先把发送的消息存为变量 ping_message = await ctx.send(f"Ping: {latency} ms") # 对消息对象调用add_reaction for emoji in emojis: await ping_message.add_reaction(emoji)
额外说明
- 如果你确实要用自定义的区域指示器emoji,需要先获取该emoji的ID,格式写成
<:regional_indicator_b:1234567890>(把1234567890换成实际的emoji ID)。 - 还要确保你的机器人有添加反应的权限,不然也会报错哦。
内容的提问来源于stack exchange,提问作者NoobGrammer
相关产品推荐
相关产品推荐

