Skip to content

QQ 机器人

go-cqhttp 官网地址:https://docs.go-cqhttp.org/

不再推荐 go-cqhttp

  1. go-cqhttp 已归档,不再维护;且容易被腾讯风控,然后不可用
  2. 新一代机器人方案推荐使用无头 NTQQ 项目:Lagrange
  3. Lagrange.OneBot 一键启动(docker):https://github.com/shenxgan/qqbot
  4. QQ 机器人体验群:855013471

开始之前可先下载我打包好的附件:点击下载

1. 下载 go-cqhttp

下载地址:https://github.com/Mrs4s/go-cqhttp/releases

以 Windows10 64 位为例:下载 go-cqhttp_windows_amd64.exe 文件(如果下载了附件,就不用再下载这个了)

2. 生成配置

【建议】先创建一个单独的文件夹,比如 go-cqhttp,将上面下载的 exe 文件放到此文件夹中。

直接双击 go-cqhttp_windows_amd64.exe 文件运行,会弹出提示,点击确认即可

会看到生成了 go-cqhttp.bat 文件,双击运行

提示你选择通信方式,选择 3: 反向 Websocket 通信;然后关闭 cmd 窗口

查看文件夹,会看到生成了配置文件: config.yml

3. 进行配置

打开 config.yml 文件,用 pycharm 或者 文本文档 直接打开此文件;将它当成一个 txt 文件就行
仅改动两处地方,其它配置不用改动

3.1 配置 QQ 号

yaml
  uin: 1233456 # QQ账号

直接修改第 4 行,将 1233456 改成机器人的 qq 号(可单独申请一个 qq 账号,也可以先直接使用自己的 qq 号)

3.2 配置 Websocket 连接地址

yaml
      universal: ws://your_websocket_universal.server

修改第 98 行,改成 universal: ws://127.0.0.1:8000/qqbot/

4. 启动 Websocket 服务

这里使用 sanic 来启动 Websocket 服务
因为 sanic 原生就支持 Websocket ,用起来也超简单

4.1 安装 sanic

pip install sanic

4.2 启动 sanic

新建一个 server.py 文件,内容如下:

python
import json
from sanic import Sanic

app = Sanic('qqbot')


@app.websocket('/qqbot')
async def qqbot(request, ws):
    """QQ机器人"""
    while True:
        data = await ws.recv()
        data = json.loads(data)
        print(json.dumps(data, indent=4, ensure_ascii=False))
        # if 判断是群消息且文本消息不为空
        if data.get('message_type') == 'group' and data.get('raw_message'):
            raw_message = data['raw_message']
            msg = raw_message[::-1]  # 反转回复
            ret = {
                'action': 'send_group_msg',
                'params': {
                    'group_id': data['group_id'],
                    'message': msg,
                }
            }
            await ws.send(json.dumps(ret))


if __name__ == '__main__':
    app.run(debug=True, auto_reload=True)

在 cmd 中运行 python server.py 进行启动
也可以将文件拖拽到 pycharm 中打开,然后点击运行

5. 启动机器人

双击运行 go-cqhttp.bat 文件,根据提示扫码登录。
登录成功后即可看到成功提示,且 Websocket 服务那边也会有日志产生了

6. 测试&使用机器人

将机器人加到自己的测试 QQ 群中,然后使用另一个账号随意发送一段消息,就能看到机器人回复了逆序后的消息

至此,qq机器人已经搭建&启动完毕。后续你可以根据你的机器人定位来完善机器人的回复逻辑

7. 附件

我将上述的所有代码和配置打包了,可直接下载使用(如果在文章开头下载了就不用重复下载了)。
改动 config.yml 文件第 4 行的 QQ 号,然后启动机器人和 Websocket 服务就可以了

点击下载

8. 体验我的机器人

我的机器人定位是 python 学习机器人,根据群里的关键字触发自动回复
可加入下面第一个 QQ 群,然后发送 python 进行体验