python环境-基于go-cqhttp-简易qq聊天机器人
目录
一、准备
1.python环境
2.go-cqhttp插件
二、配置
1.go-cqhttp配置
3.使用 sanic 来启动 Websocket 服务
三、启动
1.win端
四、linux服务器配置
1.需要多下载一个go-cqhttp文件一起打包上传
2.修改之前的配置文件config.yml
3.我的.py无法获取连接 所以我更改了最后一行代码
4.docker部署准备
5.构建部署docker
一、准备
1.python环境
2.go-cqhttp插件
go-cqhttp文件
二、配置
1.go-cqhttp配置
(1)解压go-cqhttp
win端解压后,直接打开go-cqhttp_windows_amd64.exe 点击确认三次
会生成 go-cqhttp.bat 文件,运行。
(2)选择 3: 反向WebSocket通信
然后关闭 cmd 窗口,可以看到会生成配置文件config.yml
(3)修改配置文件config.yml
1.需要修改第4行
uin: <QQ号> # QQ账号
2.第98行,Websocket 连接地址。
universal: ws://127.0.0.1:<端口号>/qqbot/ #如果不冲突就填8080
(4)修改device.json
修改device.json文件中protocol 的数字为2(含义为- 手表 -其他的可能无法登陆)
3.使用 sanic 来启动 Websocket 服务
先创建一个要执行的脚本,如 server.py (复制粘贴请更改配置)
import json
from sanic import Sanicapp = Sanic('qqbot')
base_path = "/<自定义回复的txt文件路径>"@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=<上面写的端口>,auto_reload=True)
三、启动
1.win端
运行 go-cqhttp.bat 文件,根据提示扫码登录。
四、linux服务器配置
1.需要多下载一个go-cqhttp文件一起打包上传
2.修改之前的配置文件config.yml
universal: ws://<服务器地址>:<端口号>/qqbot/ #如果不冲突就填8080
3.我的.py无法获取连接 所以我更改了最后一行代码
if __name__ == '__main__':app.run(host='0.0.0.0',debug=True,port=<你的端口>,auto_reload=True)
4.docker部署准备
两个文件当前目录配置Dockerfile
(1).go-cqhttp
#基于的基础镜像
FROM alpine:latest
#维护镜像的用户信息
LABEL maintainer="cc 1525349212@qq.com"
COPY . /workspace
WORKDIR /workspace
#启动执行脚本
CMD ["./go-cqhttp"]
(2).qqbotserver
#基于的基础镜像
FROM python:3.9# 维护者信息
LABEL maintainer="cc 1525349212@qq.com"ADD ./ /code #设置code文件夹是工作目录
WORKDIR /codeRUN pip install --default-timeout=1000 -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ CMD ["python", "/code/qqbotserver.py"]
编写py所需文件列表<简单版 详细请百度py部署linux>
新建编写txt文件requirements.txt放入qqbotserver的文件夹
requests==2.28.2
sanic==23.3.0
5.构建部署docker
1.构建
docker build -t <设置docker镜像名> .
2.部署运行
(1).qqbotserver:
docker run -d -p <端口号>:<端口号> --name <设置实例名> <刚才的镜像名>
(2).go-cqhttp:
docker run -d --name <设置实例名> <刚才的镜像名>
python环境-基于go-cqhttp-简易qq聊天机器人相关推荐
- 机器人聊天软件c#_C#制作简易QQ聊天机器人
最近对QQ聊天机器人比较感兴趣,奈何一直没找到C#的源码,就自己摸索,好了废话不多说了,开始正题. 首先我们要准备的是C# 的SDK下载地址:http://pan.baidu.com/s/1geW0X ...
- smartqq协议java_基于SmartQQ协议的QQ聊天机器人-3
今天的主题是:针对[消息回复模块]的代码分析及问题记录. 1. 核心文件分析: 核心是:QQService.java.SmartQQClient.java.Application.java.需要搞清楚 ...
- 基于SmartQQ协议的QQ聊天机器人-4
本节的主题是:结合上节的分析,具体分析函数的实现 1. 回复消息模块: 集中在org.b3log.xiaov.service包.主控文件是QQService.java,其他只是回复算法的api和一些支 ...
- smartqq java_基于SmartQQ协议的QQ聊天机器人-4
本节的主题是:结合上节的分析,具体分析函数的实现 1. 回复消息模块: 集中在org.b3log.xiaov.service包.主控文件是QQService.java,其他只是回复算法的api和一些支 ...
- 基于SmartQQ协议的QQ聊天机器人-7
本节的主题是:记录遇到的错误: 1. SQLite报错 很奇葩的错误: 当时在main里面测试OK,但是把它封装成一个包,外部调用它,就报下面的错误: SQL logic error or missi ...
- C#写的基于http协议的QQ聊天机器人
下载源代码 QQ机器人源代码_CrazyCoder_CN.rar 分析QQ协议具体数据包,最简单的办法,是Http接口下手,于是把我以前写的Ajax给拆了,在把所谓的qq接口研究成果给鼓捣在一起,然后 ...
- 写的基于http协议的QQ聊天机器人
在家闲着也不能干闲着,总得做点事情,想起前段时间一个师兄交代给我的任务:把若干个qq群串在一起.X国的政策一向比较Bt,你说开个群还要限制人数.H大在深圳有几千校友,一个群怎么可能放的下那么多人.好多 ...
- 基于SmartQQ协议的QQ聊天机器人-6
本节的主题是:记录功能实现的过程中的难点及踩坑经历 1. 大麻烦: SmartQQ协议不支持长文本,字数限制在200字左右(粗略测试的结果) 我本来想到一个好主意:把[带图片的长文本答案]转[图片], ...
- 基于SmartQQ协议的QQ聊天机器人-5
本节主题是项目回顾,从总体上分析QQ机器人的数据流 1. 项目的生命周期: /*** 下面是我的理解和注释:* 本模块功能:提供各种qq服务的基础函数库 * 项目的运行流程是:* 比如,我现在1.0版 ...
- 基于PaddleHub的QQ聊天机器人
基于PaddleHub的QQ聊天机器人 一. 项目背景 本项目是参加[AI达人特训营]的作品. 当你在和朋友在QQ群里划水摸鱼时,你是否会感到有一丝枯燥,没事别担心.为了增加群友们的划水乐趣,提高群友 ...
最新文章
- C++链式队列基本操作
- 菜鸟学习Hibernate——简单的一个例子
- leetcode算法题--摆动序列★
- 数据中心节能的13个有用小知识
- set escape on
- Spark _03RDD_Transformations_Action_使用scalajavaAPI
- Codeforces Round #450 (Div. 2)D. Unusual Sequences[数论][组合数学][dp II]
- 中国古代数学有多牛?
- html5游戏制作入门系列教程(五)
- 小程序中 swiper设置圆角在真机上不显示问题
- 百面机器学习—10.循环神经网络面试问题总结
- docker .env文件_基于Docker搭建Nacos集群
- Rocket Kitten 报告
- C++静态库与动态库的区别
- CC2640R2F学习笔记二:昇润科技开发资料阅读
- 交流电路计算方法:复阻抗和相量法
- 补充:混淆矩阵、图像分割指标计算
- 介绍分享几款免费的在线Web文件管理器
- 误操作导致系统进不去得重装,C盘资料没备份?!别慌,还有救!-200820
- 无法清除计算机的主dns,无法清除DNS缓存的解决办法