Files
qqbotsdk/docs/guide/start.md
T
snowy-yang bcd69099b6 docs: 文档模块化重构(guide/api 多页),文档站迁移 GitHub Pages Actions 部署
GUIDE/API 拆为 docs/guide/ 五页与 docs/api/ 七页,侧边栏分组折叠,
旧链接 alias 映射;安装改为 pip install qqbotsdk-py,README 加徽章;
删除 docs 分支同步工作流,pages.yml 直部署(自定义域名 CNAME 随产物带上)。
2026-10-03 19:12:11 +08:00

2.6 KiB
Raw Blame History

快速开始

从零开始接入 QQ 官方机器人:装包、配置、跑起第一个回声机器人。 事件处理细节见事件处理,收发消息的规则见收发消息。

接入准备

  1. 到 QQ 开放平台 注册开发者账号并创建机器人,拿到 AppID 与 AppSecret(即 .env 里的 APPID/APPSECRET)。
  2. 确认机器人的可用场景,这决定了你能收哪些事件、发哪些消息:
    • 群 / 单聊(v2 接口):需要在开放平台开通对应能力,事件与消息接口均用 openid(group_openid / user_openid),与用户的 QQ 号互不可见。
    • 频道公域机器人:只能收 AT_MESSAGE_CREATE(@机器人才触发),发消息必须带 msg_id 被动回复。
    • 频道私域机器人:可订阅 GUILD_MESSAGES(全量消息)与论坛事件,可主动发消息、撤回消息。

安装

pip install qqbotsdk-py        # 或
uv add qqbotsdk-py

导入名是 qqbotsdk(发行包名带 -py 后缀是因为 PyPI 上 qqbotsdk 与已有项目撞名)。要求 Python ≥ 3.12。

最小可跑示例

项目根目录放两个文件。

.env(SDK 启动时自动加载,缺失 APPID/APPSECRET 启动即报错):

APPID=你的AppID
APPSECRET=你的AppSecret

intents.toml(事件订阅按分组开关,详见配置与订阅):

GROUP_AND_C2C_EVENT = true

main.py:

from qqbotsdk import Bot
from qqbotsdk.api import BotApi
from qqbotsdk.payloads import GroupAtMessage

bot = Bot()


# handler 形参按标注注入:payload dataclass 与 BotApi 等组件可任意组合
@bot.on("GROUP_AT_MESSAGE_CREATE")
async def on_group_message(msg: GroupAtMessage, api: BotApi):
    # 被动回复带 msg_id(5 分钟内有效,多次回复递增 msg_seq);失败抛 ApiError
    await api.post_group_message(
        msg.group_openid,
        content=f"你说:{msg.content}",
        msg_id=msg.id,
    )


if __name__ == "__main__":
    bot.run()

运行:

uv run python main.py

把机器人拉进测试群,@它说句话,就会收到回声。

下一步

  • 两种接入方式(WebSocket / Webhook)怎么选:配置与订阅
  • handler 参数注入、后台并发、自定义组件:事件处理
  • 富媒体、Markdown 按钮、被动回复时限等消息规则:收发消息
  • 完整示例(按钮卡片、入群欢迎、单聊、webhook):examples/