Skip to content

API 参考

BotAPI 类封装了所有 QQ 机器人 REST API 接口,通过 client.api 访问。

源码位置: botpy/api.py 第 26 行

BotAPI 类

python
class BotAPI(http: BotHttp)
参数类型说明
httpBotHttpHTTP 客户端实例,由 Client 自动创建

Client 初始化时自动创建(botpy/client.py 第 58 行):

python
self.http: BotHttp = BotHttp(timeout=timeout, is_sandbox=is_sandbox)
self.api: BotAPI = BotAPI(http=self.http)

访问 API

python
class MyClient(botpy.Client):
    async def on_at_message_create(self, message: Message):
        # 通过 client.api 调用
        await self.api.post_message(
            channel_id=message.channel_id,
            content="Hello!"
        )

API 分类

分类说明
频道获取/修改频道信息、频道列表
子频道子频道的增删改查、权限管理
身份组身份组 CRUD、身份组成员管理
成员成员信息查询、成员列表、踢出
消息发送/撤回消息(文本、Embed、ARK、Markdown、键盘等)
私信创建私信会话、发送私信
禁言全体/指定成员禁言
公告创建/删除公告、推荐子频道
接口权限权限列表查询、权限申请
日程日程的增删改查
表情表态添加/删除表情表态、获取表态用户
精华消息精华消息的添加/删除/查询
音频音频控制、上/下麦
论坛帖子列表、详情、发表/删除
群消息群消息发送、群文件上传
C2C 消息C2C 消息发送、C2C 文件上传

BotHttp 类和 Route 类

BotHttp

HTTP 客户端,基于 aiohttp。源码位置:botpy/http.py 第 114 行

python
class BotHttp(
    timeout: int,
    is_sandbox: bool = False,
    app_id: str = None,
    secret: str = None,
)
方法说明
check_session()检查 token 和 session,自动刷新 access_token
request(route, **kwargs)执行 HTTP 请求,支持自动重试(最多 3 次)
login(token)登录并保存 token 和 session
close()关闭 HTTP 连接

Route

路由构建类。源码位置:botpy/http.py 第 89 行

python
class Route(method: str, path: str, is_sandbox: bool = False, **parameters)

域名:

  • 生产环境: api.sgroup.qq.com
  • 沙箱环境: sandbox.api.sgroup.qq.com

URL 通过 str.format_map(parameters) 构建,自动替换 {path_param} 占位符。

超时设置

python
client = MyClient(intents=intents, timeout=10)

超时时间作用于 BotHttp.request() 中的 aiohttp.ClientTimeout

返回类型

API 方法返回 TypedDict 字典数据,通过 botpy.types 下的类型定义提供类型提示。

分类类型模块
消息types/message.py
频道types/guild.py
子频道types/channel.py
用户types/user.py
内联键盘types/inline.py
论坛types/forum.py
富文本types/rich_text.py
其他types/announce.py, types/audio.py, 等

详见数据模型