Python Discord Bot无报错但!alert命令无响应问题求助
Discord股票提醒机器人不响应
!alert命令的排查方案 核心问题:Intents权限缺失
Discord.py v2.0及以上版本中,discord.Intents.default()默认不包含消息内容读取权限,而机器人需要读取消息内容才能识别命令,这是导致命令无响应的最常见原因。
修复步骤:
- 登录Discord开发者门户,进入机器人页面,开启Message Content Intent选项;
- 修改代码中的Intents配置:
intents = discord.Intents.default() intents.message_content = True # 新增该行以开启消息内容读取权限 bot = commands.Bot(command_prefix='!', intents=intents)
其他排查方向
- 命令参数完整性:
alert命令要求6个必填参数(action、stock、strike_price、option_type、expiration_date、premium),用户输入必须完整,例如:!alert buy AAPL 150 call 2024-12-31 1.5。建议添加错误提示代码,方便排查参数问题:
@alert.error async def alert_error(ctx, error): if isinstance(error, commands.MissingRequiredArgument): await ctx.send("参数格式错误!正确用法:!alert <操作> <股票代码> <行权价> <期权类型> <到期日> <权利金>")
- 角色名称匹配问题:检查服务器内角色名称是否与代码中的
tophalerts完全一致(区分大小写、无空格差异); - 通道权限验证:确认机器人在发送命令的通道拥有读取消息和发送消息权限,避免个别通道的权限覆盖全局配置。
内容的提问来源于stack exchange,提问作者Christian Zehetmair
相关产品推荐
相关产品推荐

