目录

一、准备

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聊天机器人相关推荐

  1. 机器人聊天软件c#_C#制作简易QQ聊天机器人

    最近对QQ聊天机器人比较感兴趣,奈何一直没找到C#的源码,就自己摸索,好了废话不多说了,开始正题. 首先我们要准备的是C# 的SDK下载地址:http://pan.baidu.com/s/1geW0X ...

  2. smartqq协议java_基于SmartQQ协议的QQ聊天机器人-3

    今天的主题是:针对[消息回复模块]的代码分析及问题记录. 1. 核心文件分析: 核心是:QQService.java.SmartQQClient.java.Application.java.需要搞清楚 ...

  3. 基于SmartQQ协议的QQ聊天机器人-4

    本节的主题是:结合上节的分析,具体分析函数的实现 1. 回复消息模块: 集中在org.b3log.xiaov.service包.主控文件是QQService.java,其他只是回复算法的api和一些支 ...

  4. smartqq java_基于SmartQQ协议的QQ聊天机器人-4

    本节的主题是:结合上节的分析,具体分析函数的实现 1. 回复消息模块: 集中在org.b3log.xiaov.service包.主控文件是QQService.java,其他只是回复算法的api和一些支 ...

  5. 基于SmartQQ协议的QQ聊天机器人-7

    本节的主题是:记录遇到的错误: 1. SQLite报错 很奇葩的错误: 当时在main里面测试OK,但是把它封装成一个包,外部调用它,就报下面的错误: SQL logic error or missi ...

  6. C#写的基于http协议的QQ聊天机器人

    下载源代码 QQ机器人源代码_CrazyCoder_CN.rar 分析QQ协议具体数据包,最简单的办法,是Http接口下手,于是把我以前写的Ajax给拆了,在把所谓的qq接口研究成果给鼓捣在一起,然后 ...

  7. 写的基于http协议的QQ聊天机器人

    在家闲着也不能干闲着,总得做点事情,想起前段时间一个师兄交代给我的任务:把若干个qq群串在一起.X国的政策一向比较Bt,你说开个群还要限制人数.H大在深圳有几千校友,一个群怎么可能放的下那么多人.好多 ...

  8. 基于SmartQQ协议的QQ聊天机器人-6

    本节的主题是:记录功能实现的过程中的难点及踩坑经历 1. 大麻烦: SmartQQ协议不支持长文本,字数限制在200字左右(粗略测试的结果) 我本来想到一个好主意:把[带图片的长文本答案]转[图片], ...

  9. 基于SmartQQ协议的QQ聊天机器人-5

    本节主题是项目回顾,从总体上分析QQ机器人的数据流 1. 项目的生命周期: /*** 下面是我的理解和注释:* 本模块功能:提供各种qq服务的基础函数库 * 项目的运行流程是:* 比如,我现在1.0版 ...

  10. 基于PaddleHub的QQ聊天机器人

    基于PaddleHub的QQ聊天机器人 一. 项目背景 本项目是参加[AI达人特训营]的作品. 当你在和朋友在QQ群里划水摸鱼时,你是否会感到有一丝枯燥,没事别担心.为了增加群友们的划水乐趣,提高群友 ...

最新文章

  1. C++链式队列基本操作
  2. 菜鸟学习Hibernate——简单的一个例子
  3. leetcode算法题--摆动序列★
  4. 数据中心节能的13个有用小知识
  5. set escape on
  6. Spark _03RDD_Transformations_Action_使用scalajavaAPI
  7. Codeforces Round #450 (Div. 2)D. Unusual Sequences[数论][组合数学][dp II]
  8. 中国古代数学有多牛?
  9. html5游戏制作入门系列教程(五)
  10. 小程序中 swiper设置圆角在真机上不显示问题
  11. 百面机器学习—10.循环神经网络面试问题总结
  12. docker .env文件_基于Docker搭建Nacos集群
  13. Rocket Kitten 报告
  14. C++静态库与动态库的区别
  15. CC2640R2F学习笔记二:昇润科技开发资料阅读
  16. 交流电路计算方法:复阻抗和相量法
  17. 补充:混淆矩阵、图像分割指标计算
  18. 介绍分享几款免费的在线Web文件管理器
  19. 误操作导致系统进不去得重装,C盘资料没备份?!别慌,还有救!-200820
  20. 无法清除计算机的主dns,无法清除DNS缓存的解决办法

热门文章

  1. 计算机网络的功能有哪些?
  2. meego linux版本,记MeeGo的多系统启动
  3. 附着流程(Attach)
  4. 使用DiskGenius进行硬盘数据迁移
  5. 护眼灯真能护眼睛吗?2022护眼台灯怎么样选择好
  6. 学习编程的第32天-不忘初衷
  7. 基于emp的 单表查询 练习题及答案
  8. 基于python,mysql的学生打卡系统(班级在用)
  9. 关于SIP服务器opensips和Asterisk比较的好文章
  10. 世界最大的两个BT网站被迫下线 ExtraTorrent遭遇DDoS攻击