Python开发Discord机器人报错:'NoneType'对象无add_reaction属性
解决Discord机器人的AttributeError错误
错误原因
interaction.response.send_message() 是发送交互初始响应的方法,它执行后返回的是 None,而非发送出去的消息对象。你把它的返回值赋值给了 msg,后续调用 msg.add_reaction() 自然会触发 NoneType 对象没有 add_reaction 属性的错误。
解决方案
方法一:获取初始响应的消息对象
发送初始响应后,通过 interaction.original_response() 方法获取到发送出去的消息实例,再调用添加反应的方法:
embed = discord.Embed(title=f'Topic: {tema.capitalize()}', description='The word has ' + str(len(secretWord)) + ' letters', color=discord.Color.yellow()) # 发送初始响应 await interaction.response.send_message(embed=embed) # 获取发送的消息对象 msg = await interaction.original_response() # 添加反应(替换为正确的emoji格式,示例用数字1的表情) await msg.add_reaction('1️⃣')
额外注意:表情格式问题
你代码里写的 'regional_indicator_1:' 不是有效的表情格式,Discord无法识别。如果是系统默认表情,直接使用对应的emoji字符(比如数字1的表情是 '1️⃣',区域指标A是 '🇦');如果是自定义表情,需要用 discord.PartialEmoji(name="regional_indicator_1", id=表情ID) 来引用。
内容的提问来源于stack exchange,提问作者galileo
相关产品推荐
相关产品推荐

