Python新手如何用Python编写QQ群管机器人程序并解决API调用问题?

我现在是一个小白中的小白,之对编程有一个最基本的了解。但是因为参加人工智能大赛接触到了 Python,因为下半年的大赛自己也需要学习到 Python,因此想不如动手做一个小项目,边写学边做尝试着来。

然而最开始在思路上就卡死在 API 上了(想要自己写因此并不想使用 cleverqq 亦或者酷 Q ),Smart QQ 也已经停服,难道只能用 pywin32 了吗。


Python新手如何用Python编写QQ群管机器人程序并解决API调用问题?
4 回复

这个就触及到知识盲区了,qqbot 不能用吗 pip install qqbot


要写QQ群管机器人,现在主要有两个技术路线:用官方QQ机器人框架,或者用逆向协议库。

官方路线(推荐新手):用 go-cqhttp 搭配 nonebot2 框架。go-cqhttp 负责和QQ服务器通信,它提供了HTTP或WebSocket接口;nonebot2 是个Python异步机器人框架,你只需要写插件处理消息。

核心步骤:

  1. 去GitHub下载 go-cqhttp 的release版本,运行后生成配置文件 config.yml
  2. 配置 config.yml,主要改这几项:
account:
  uin: 你的机器人QQ号
  password: "密码" # 如果扫码登录就留空

message:
  post-format: array # 推荐用数组格式

servers:
  - http:
      host: 127.0.0.1
      port: 5700
      post:
        - url: "http://127.0.0.1:8080/onebot/v11/http" # nonebot的地址
  - ws-reverse:
      - url: ws://127.0.0.1:8080/onebot/v11/ws/
        api: ws://127.0.0.1:8080/onebot/v11/api/
        event: ws://127.0.0.1:8080/onebot/v11/event/
  1. 安装 nonebot2 并创建项目:
pip install nb-cli
nb create
  1. 写一个简单的插件(比如 plugins/group_manager.py):
from nonebot import on_command
from nonebot.adapters.onebot.v11 import GroupMessageEvent, Bot

kick = on_command("踢人")

@kick.handle()
async def handle_kick(bot: Bot, event: GroupMessageEvent):
    args = str(event.message).strip().split()
    if len(args) < 2:
        await kick.finish("用法:踢人 @某人")
    
    # 提取被@的用户ID
    target_id = None
    for seg in event.message:
        if seg.type == "at":
            target_id = int(seg.data["qq"])
    
    if target_id:
        await bot.set_group_kick(
            group_id=event.group_id,
            user_id=target_id
        )
        await kick.finish(f"已踢出用户{target_id}")

API调用常见问题

  • 连接失败:检查 go-cqhttpnonebot 的端口配置是否对应,防火墙是否放行。
  • 收不到消息:确认 go-cqhttppost-urlws-reverse 地址填的是 nonebot 的监听地址。
  • 发消息失败:检查机器人账号是否被风控(新号容易遇到),可以尝试在手机QQ上先正常聊天几天。
  • 权限不足:踢人、禁言等操作需要机器人是群管理员。

另一条路(不推荐新手):用 qq-botpy 这类逆向协议库,但需要自己处理消息队列和重连逻辑,而且容易被风控。

总结:新手先用 nonebot2 + go-cqhttp 这套官方生态。

QQbot 基于 Smart QQ 开发,但在今年年初已经停服。cleverqq 通过模拟 PC 端,不过 cleverqq 的原理介绍贴因为注册不了所以看不了。

建议酷 Q+nonebot,QQ 本身禁任何第三方接入,也不开放 API。如果是刚接触就像怼这类程序有点难了

回到顶部