如何用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
相关产品推荐
相关产品推荐

