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

开发Discord Slash命令Bot运行时出现未关闭会话错误,求排查

问题原因及解决方案

核心问题:未启动Bot运行循环

你的代码仅完成了Bot客户端的初始化,但没有启动Discord Bot的核心运行循环。程序执行完初始化代码后直接退出,导致aiohttp的客户端会话和连接器未能正常关闭,从而出现Unclosed client session这类提示。

解决方法:在代码末尾添加启动语句:

bot.start()

如果需要更规范的异步管理,也可以使用asyncio:

import asyncio
asyncio.run(bot.start())

其他潜在问题

  • 命令函数名重复:所有Slash命令的处理函数都使用my_first_command这一名称,会导致后续函数覆盖前面的定义,最终只有最后一个Printout命令能正常响应。每个命令需对应唯一的函数名,例如:

    @bot.command(
        name="Action",
        description="Number between one and nine",
        scope=GUILDID,
    )
    async def action_command(ctx: interactions.CommandContext):
        await ctx.send("Hi there!")
    
  • 未定义GUILDID变量:代码中的GUILDID未赋值,需替换为实际的服务器ID(整数类型),比如:

    GUILDID = 123456789012345678  # 替换成你的目标服务器ID
    

    若要让命令全局生效,可直接移除scope参数(注意全局命令需要约1小时同步到所有服务器)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 13:54:22