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

如何用discord.py给特定用户的所有消息自动添加表情回应,代码异常如何解决

问题排查与修复方案
  • 缩进语法错误:代码中on_ready、on_message两个异步函数的定义行前多了多余缩进,不符合Python语法规范,运行时会直接抛出缩进错误。
  • 用户匹配逻辑错误:msg.author是Discord的User类实例,不能直接和字符串格式的用户ID做等值判断,需要提取msg.author.id(整数类型)和你要匹配的目标用户ID(转为整数)对比才会生效。
  • 缺少Intents声明:如果使用的是discord.py v2.0及以上版本,必须显式声明所需的网关意图,同时要在Discord开发者后台的Bot设置页开启Message Content Intent权限,否则无法正常获取消息事件。

修正后的可用代码如下:

import discord

# 显式声明所需意图
intents = discord.Intents.default()
intents.message_content = True
intents.members = True

client = discord.Client(intents=intents)

@client.event
async def on_ready():
    print('I logged in as: {0.user}'.format(client))

@client.event
async def on_message(msg):
    # 替换为你要匹配的目标用户ID,为整数类型不要加引号
    target_user_id = 123456789012345678
    if msg.author.id == target_user_id:
        await msg.add_reaction('💩')

client.run('替换为你的Bot Token')

内容的提问来源于stack exchange,提问作者ccvv222

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:24:00