You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 21:54:08