Python搭建QQ聊天机器人极简教程

为了方便管理QQ粉丝群,想着弄一个机器人来进行自动回复,本来想着去某平台去购买结果发现都很贵而且是按年收费,可是群管家又不能满足大规模内容回复的需求,所以只能自己做一个咯。

先来看一下效果吧,我自己的粉丝群。
Python搭建QQ聊天机器人极简教程_第1张图片
然后在后台配置跟中回复关键词。
Python搭建QQ聊天机器人极简教程_第2张图片
然后咱来看一下这个怎么实现的。

文章目录

  • go-cqhttp 安装
  • go-cqhttp 配置
  • Websocket 服务
  • 配置关键词回复内容
  • 启动机器人
  • 云服务器配置

不管linux系统还是window系统,都需要准备1个挂机的QQ号,这个就相当于用一个不用的号来挂在服务器上实现自动回复的功能。

go-cqhttp 安装

go-cqhttp 插件 自行下载。
Python搭建QQ聊天机器人极简教程_第3张图片
自行选择,如果懒可以直接用我做好的,系统环境是win10 + centos7.9。

这里建议在win端走配置好了,具体配置什么下面会说,然后在放到linux命令行里执行。

先创建一个单独的文件夹将下载的 exe 文件放到此文件夹中。执行 go-cqhttp_windows_amd64.exe 点击确认。
Python搭建QQ聊天机器人极简教程_第4张图片
会看到生成了 go-cqhttp.bat 文件双击运行。选择 【3: 反向 Websocket 通信】,然后关闭 cmd 窗口。
Python搭建QQ聊天机器人极简教程_第5张图片
然后在文件夹会生成了配置文件【config.yml 】。
Python搭建QQ聊天机器人极简教程_第6张图片

go-cqhttp 配置

需要修改地方有那么几个。

1.第4行,配置 QQ 号。

uin: 改成你要挂机的QQ号 # QQ账号

2.第98行,Websocket 连接地址。

universal: ws://127.0.0.1:端口号随意/qqbot/

Websocket 服务

使用 sanic 来启动 Websocket 服务。

pip install sanic

启动 sanic 执行,创建一个你要执行的脚本,比如 server.py 。

import json
from sanic import Sanic

app = Sanic('qqbot')
base_path = "/onoebot/keyword/"


@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']
            if raw_message == "/菜单":
                with open(base_path + "菜单.txt", encoding="utf8") as f:
                    msg = f.read()
                ret = {
                        'action': 'send_group_msg',
                        'params': {
                            'group_id': data['group_id'],
                            'message': msg,
                        }
                    }
                await ws.send(json.dumps(ret))
            elif raw_message == "/群主介绍":
                with open(base_path + "群主介绍.txt", encoding="utf8") as f:
                    msg = f.read()
                ret = {
                        'action': 'send_group_msg',
                        'params': {
                            'group_id': data['group_id'],
                            'message': msg,
                        }
                    }
                await ws.send(json.dumps(ret))
            elif raw_message == "/群主主页":
                with open(base_path + "群主主页.txt", encoding="utf8") as f:
                    msg = f.read()
                ret = {
                        'action': 'send_group_msg',
                        'params': {
                            'group_id': data['group_id'],
                            'message': msg,
                        }
                    }
                await ws.send(json.dumps(ret))
            elif raw_message == "/Python学习目录":
                with open(base_path + "Python学习目录.txt", encoding="utf8") as f:
                    msg = f.read()
                ret = {
                        'action': 'send_group_msg',
                        'params': {
                            'group_id': data['group_id'],
                            'message': msg,
                        }
                    }
                await ws.send(json.dumps(ret))
            elif raw_message == "/开发项目":
                with open(base_path + "开发项目.txt", encoding="utf8") as f:
                    msg = f.read()
                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,port=5678,auto_reload=True)

配置关键词回复内容

根据上面的 server.py 进行配置。
Python搭建QQ聊天机器人极简教程_第7张图片
代码和配置回复的内容以及关键字自行按照脚本修改即可。

启动机器人

这里要在win端执行,双击运行 go-cqhttp.bat 文件,根据提示扫码登录。登录成功后即可看到成功提示,且 Websocket 服务那边也会有日志产生了。
Python搭建QQ聊天机器人极简教程_第8张图片
扫码登陆后会生成一个你这个QQ的登陆文件。
Python搭建QQ聊天机器人极简教程_第9张图片
然后把这个机器人拉到你的QQ群里改个名字就可以了。
Python搭建QQ聊天机器人极简教程_第10张图片
然后就可以实现文章最开头的自动回复功能了。

云服务器配置

将可以在本地执行的所有文件上传到服务器上,centos7用的是红色这个文件,需要自己手动下载。
Python搭建QQ聊天机器人极简教程_第11张图片
进入服务器项目目录。
Python搭建QQ聊天机器人极简教程_第12张图片
执行命令 ./go-cqhttp ,不报错就证明启动成功了。
Python搭建QQ聊天机器人极简教程_第13张图片
最后也不要忘记用python执行server.py脚本,否则是没有办法实现自动回复功能的。

python3 server.py 

Python搭建QQ聊天机器人极简教程_第14张图片

你可能感兴趣的:(Python,实用应用程序,python,机器人,开发语言)