使用Discord.py用户账户给消息添加反应出现AttributeError错误如何解决
错误原因
- 核心报错根源:
add_reaction()是*消息(Message)*对象的专属方法,你报错时的代码对频道(TextChannel)对象调用了该方法,自然不存在对应属性,触发AttributeError - 额外逻辑漏洞:你贴出的后续修改代码中没有定义
message变量,也没有实现获取指定频道最新消息的逻辑,运行依然会报错 - 细节问题:
client.run()是阻塞方法,你写在它后面的print("can you see me?")只有在客户端退出登录后才会执行,正常运行过程中不会输出
修复后的可用代码
import discord client = discord.Client() # 替换为你自己的用户token token = "your_token_here" def add_reaction(emoji): @client.event async def on_ready(): channel = client.get_channel(825437474871312387) # 获取频道内最新的1条消息 latest_msg_list = await channel.history(limit=1).flatten() if latest_msg_list: # 对最新的消息添加表情反应 await latest_msg_list[0].add_reaction(emoji) print("反应添加成功") # 执行完成后主动关闭客户端 await client.close() client.run(token, bot=False) if __name__ == '__main__': add_reaction('❤️')
重要提醒
- 使用普通Discord用户账户运行自动化脚本属于官方定义的自机器人行为,明确违反Discord服务条款,一旦检测到账号会被永久封禁,使用风险自行承担
- 如果你使用的是discord.py v2.0及以上版本,需要在初始化Client时传入消息内容相关的意图参数,否则无法正常获取频道消息
内容的提问来源于stack exchange,提问作者Vanden
相关产品推荐
相关产品推荐

