0x01:下载 go-cqhttp release文件

releases: https://github.com/Mrs4s/go-cqhttp/releases/
下载对应版本压缩包.zip.tar.gz

0x02:解压 并 运行

这里只单独介绍Linux下安装

当前使用版本: v1.0.0-beta4
以压缩包 go-cqhttp_linux_amd64.tar.gz为例

# 新建目录 把压缩包放进去
[root@centos7 ~] # mkdir qqbot && mv go-cqhttp_linux_amd64.tar.gz ./qqbot
# 进入目录
[root@centos7 ~] # cd qqbot
# 解压
[root@centos7 ~] # tar -zxvf go-cqhttp_linux_amd64.tar.gz
# 当前目录结构
├── LICENSE
├── README.md
├── go-cqhttp
└── go-cqhttp_linux_amd64.tar.gz# 第一次运行
[root@centos7 ~] # ./go-cqhttp faststart
未找到配置文件,正在为您生成配置文件中!
请选择你需要的通信方式:
> 1: HTTP通信
> 2: 正向 Websocket 通信
> 3: 反向 Websocket 通信
> 4: pprof 性能分析服务器
请输入你需要的编号,可输入多个,同一编号也可输入多个(如: 233)
您的选择是:13
默认配置文件已生成,请修改 config.yml 后重新启动!

到这里已经生成了config.yml配置文件, 我选择了HTTP通信反向WebSocket一般情况搭配nonebot2使用只需要开启反向WebSocket

0x03:修改配置文件

此处修改同样适用 config.hjson配置文件

  • uid: 改成QQ号
  • password: 改成密码
  • ws://your_websocket_universal.server: 改成 ws://127.0.0.1:8765/cqhttp/ws
  • ws://your_websocket_api.server 改成 ws://127.0.0.1:8765/cqhttp/api
  • ws://your_websocket_event.server 改成 ws://127.0.0.1:8765/cqhttp/event

到此修改完毕

0x04:启动 go-cqhttp

[root@centos7 ~] # ./go-cqhttp faststart
[2021-05-27 23:51:53] [INFO]: 当前版本:v1.0.0-beta4
[2021-05-27 23:51:53] [INFO]: 用户交流群: 721829413
[2021-05-27 23:51:53] [WARNING]: 虚拟设备信息不存在, 将自动生成随机设备.
[2021-05-27 23:51:53] [INFO]: 已生成设备信息并保存到 device.json 文件.
[2021-05-27 23:51:53] [INFO]: 开始尝试登录并同步消息...
[2021-05-27 23:51:53] [INFO]: 使用协议: iPad
[2021-05-27 23:51:54] [INFO]: Protocol -> connect to server: 113.96.13.95:8080
[2021-05-27 23:51:58] [INFO]: 收到服务器地址更新通知, 将在下一次重连时应用.
[2021-05-27 23:51:58] [INFO]: 登录成功 欢迎使用: 雨
[2021-05-27 23:51:58] [INFO]: 开始加载好友列表...
[2021-05-27 23:51:58] [INFO]: 共加载 20 个好友.
[2021-05-27 23:51:58] [INFO]: 开始加载群列表...
[2021-05-27 23:52:00] [INFO]: 共加载 11 个群.
[2021-05-27 23:52:00] [INFO]: 信息数据库初始化完成.
[2021-05-27 23:52:00] [INFO]: 正在加载事件过滤器.
[2021-05-27 23:52:00] [INFO]: 资源初始化完成, 开始处理信息.
[2021-05-27 23:52:00] [INFO]: アトリは、高性能ですから!
[2021-05-27 23:52:00] [INFO]: CQ HTTP 服务器已启动: 127.0.0.1:5700
[2021-05-27 23:52:00] [INFO]: 正在检查更新.
[2021-05-27 23:52:00] [INFO]: 开始尝试连接到反向WebSocket Universal服务器: ws://127.0.0.1:8765/cqhttp/ws
[2021-05-27 23:52:00] [WARNING]: 连接到反向WebSocket Universal服务器 ws://127.0.0.1:8765/cqhttp/ws 时出现错误: dial tcp 127.0.0.1:8765: connect: connection refused

这里go-cqhttp启动完成。

0x05:安装 nonebot2

  1. pip install -i https://pypi.doubanio.com/simple nb-cli 推荐

  2. pip install -i https://pypi.doubanio.com/simple nonebot2

推荐安装 nb-cli 方便后期生成 Bot 项目

0x06:生成 bot 项目

[root@centos7 ~] # nb
# Create a New Project
# Project Name: lin
# In a "src" folder
# Load NoneBot Builtin Plugin? (y/N) n
  • adapter 选择 cqhttp 或者 gocq

机器人项目生成好了, 下面是目录结构

lin
├── Dockerfile
├── README.md
├── bot.py
├── docker-compose.yml
├── pyproject.toml
└── src└── plugins# bot.py 的内容
[root@centos7 ~] # cat bot.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-import nonebot# Custom your logger
#
# from nonebot.log import logger, default_format
# logger.add("error.log",
#            rotation="00:00",
#            diagnose=False,
#            level="ERROR",
#            format=default_format)# You can pass some keyword args config to init function
nonebot.init()
app = nonebot.get_asgi()driver = nonebot.get_driver()nonebot.load_from_toml("pyproject.toml")# Modify some config / config depends on loaded configs
#
# config = driver.config
# do something...if __name__ == "__main__":nonebot.logger.warning("Always use `nb run` to start the bot instead of manually running!")nonebot.run(app="__mp_main__:app")

修改bot,py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-import nonebot
from nonebot.adapters.cqhttp.bot import Bot
# from nonebot.adapters.cqhttp.bot import Bot
# Custom your logger
#
# from nonebot.log import logger, default_format
# logger.add("error.log",
#            rotation="00:00",
#            diagnose=False,
#            level="ERROR",
#            format=default_format)# You can pass some keyword args config to init function
nonebot.init()
nonebot.get_driver().register_adapter("cqhttp", Bot)
app = nonebot.get_asgi()driver = nonebot.get_driver()nonebot.load_from_toml("pyproject.toml")# Modify some config / config depends on loaded configs
#
# config = driver.config
# do something...if __name__ == "__main__":nonebot.logger.warning("Always use `nb run` to start the bot instead of manually running!")nonebot.run(app="__mp_main__:app")

0x07:运行

运行前需要先安装好 cqhttp adapter
nb adapter install cqhttp

也请确保 go-cqhttp 也正处于运行状态 可以另起一个终端

  • 修改 .env.dev 中的 PORT参数(刚刚在go-cqhttp配置文件中给出的反向代理地址的端口为 8765) 这里PORT=8765就可以, 或者你可以根据自己的喜好更改, 不要忘记连同 go-cqhttp目录下config.yml 或 config.hjson文件中的反向代理端口一起修改。

到此就可以正式运行了

# python3 或者 python
[root@centos7 ~] # python3 bot.py
05-28 00:33:43 [INFO] nonebot | NoneBot is initializing...
05-28 00:33:43 [INFO] nonebot | Current Env: dev
05-28 00:33:43 [DEBUG] nonebot | Loaded Config: {'driver': 'nonebot.drivers.fastapi', 'host': IPv4Address('127.0.0.1'), 'port': 8765, 'debug': True, 'api_root': {}, 'api_timeout': 30.0, 'access_token': None, 'secret': None, 'superusers': set(), 'nickname': set(), 'command_start': {'/'}, 'command_sep': {'.'}, 'session_expire_timeout': datetime.timedelta(seconds=120), 'environment': 'dev'}
05-28 00:33:43 [DEBUG] nonebot | Succeeded to load adapter "cqhttp"
05-28 00:33:43 [WARNING] __main__ | Always use `nb run` to start the bot instead of manually running!
05-28 00:33:43 [INFO] nonebot | Running NoneBot...
05-28 00:33:43 [DEBUG] nonebot | Loaded adapters: cqhttp
05-28 00:33:43 [INFO] uvicorn | Uvicorn running on http://127.0.0.1:8765 (Press CTRL+C to quit)
05-28 00:33:43 [INFO] uvicorn | Started reloader process [1165] using watchgod
05-28 00:33:43 [INFO] nonebot | NoneBot is initializing...
05-28 00:33:43 [INFO] nonebot | Current Env: dev
05-28 00:33:43 [DEBUG] nonebot | Loaded Config: {'driver': 'nonebot.drivers.fastapi', 'host': IPv4Address('127.0.0.1'), 'port': 8765, 'debug': True, 'api_root': {}, 'api_timeout': 30.0, 'access_token': None, 'secret': None, 'superusers': set(), 'nickname': set(), 'command_start': {'/'}, 'command_sep': {'.'}, 'session_expire_timeout': datetime.timedelta(seconds=120), 'environment': 'dev'}
05-28 00:33:43 [DEBUG] nonebot | Succeeded to load adapter "cqhttp"
05-28 00:33:44 [INFO] uvicorn | Started server process [1168]
05-28 00:33:44 [INFO] uvicorn | Waiting for application startup.
05-28 00:33:44 [INFO] uvicorn | Application startup complete.
05-28 00:33:44 [INFO] uvicorn | ('127.0.0.1', 14601) - "WebSocket /cqhttp/ws" [accepted]
05-28 00:33:44 [INFO] nonebot | WebSocket Connection from CQHTTP Bot ****** Accepted!

到此看到WebSocket Connection from CQHTTP Bot xxxx Accepted!就代表机器人已经启动完毕了, 后面会显示从go-cqhttp上报的消息。

0x08:总结

  • nonebot官网
  • go-cqhttp 帮助中心

更详细的教程还请参考两个官网, 俺只是把自己第一次成功使用的过程做了个梳理, 希望对你有所帮助。

【QQBot】基于 go-cqhttp + nonebot2 搭建的QQ机器人相关推荐

  1. 从零开始基于nonebot2搭建Q群机器人自动获取各大平台热搜

    从零开始基于nonebot2搭建Q群机器人自动获取各大平台热搜 目录 从零开始基于nonebot2搭建Q群机器人自动获取各大平台热搜 安装步骤 使用方法 退出方法 启用方法 参考链接 安装步骤 安装步 ...

  2. python开发酷q插件_基于python和酷Q的QQ机器人开发实践(1)

    基本框架 (1) 酷Q:目前最常用的QQ机器人软件(尤其是在smartQQ失效以后). (2) 酷Q HTTP插件:通过HTTP对酷Q的事件进行上报以及接收HTTP请求来调用酷Q的DLL接口,从而可以 ...

  3. python开发酷q插件gui_基于python和酷Q的QQ机器人开发实践(1)

    基本框架 (1) 酷Q:目前最常用的QQ机器人软件(尤其是在smartQQ失效以后). (2) 酷Q HTTP插件:通过HTTP对酷Q的事件进行上报以及接收HTTP请求来调用酷Q的DLL接口,从而可以 ...

  4. 基于java(springboot)和go-cqhttp实现QQ机器人

    目录 yh-qqrobot机器人简介 go-cqhttp搭建 1.下载应用 2.生成bat文件 3. 初始化项目 4. 配置 5. 运行项目 yh-qqrobot搭建 搭建后端 1. 导入sql文件 ...

  5. 基于WebQQ3.0协议写一个QQ机器人

    最近公司需要做个qq机器人获取qq好友列表,并且能够自动向选定的qq好友定时发送消息.没有头绪,硬着头皮上 甘甜的心情瞬间变得苦涩了 哇 多捞吆 1.WEBQQ3.0登陆协议 进入WEBQQ, htt ...

  6. 基于nonebot2+go-cqhttp的QQ机器人构建(1)机器人搭建

    对于nonebot2和go-cqhttp的构建,nonebot2的官网上有较为详细的搭建方法,这里先放上官网链接: nonebot2:概览 | NoneBot go-cqhttp:简介 | go-cq ...

  7. Python 搭建一个简易QQ机器人

    本次搭建的QQ机器人基于nonebot.可以参考官方文档:nonebot指南 我的项目地址 : 简单QQ机器人项目 安装nonebot: pip install nonebot tips:python ...

  8. python开发qq聊天机器人_Python qqbot 实现qq机器人的示例代码

    qqbot 是一个用 python 实现的.基于腾讯 SmartQQ 协议的 QQ 机器人框架,可运行在 Linux . Windows 和 Mac OSX 平台下. 你可以通过扩展 qqbot 来实 ...

  9. 基于Mirai框架的QQ机器人使用文档----郑大科协2021招新群

    目录 1. 引言 1.1 编写目的 1.2 项目背景 1.3 参考链接 2. 使用说明 2.1 关于插件 2.2 自动功能 2.3 交互功能 2.4 插件链接 3. 出错与恢复 3.1 自动功能出错 ...

最新文章

  1. SpingBoot+Mybaits+Vue,更新学习
  2. c++查询当前文件夹下文件数目_python3自动化小工具--删除某个文件夹xx后缀文件...
  3. 10个高效Linux技巧及Vim命令对比
  4. 做一个“多人在线编辑器”,你会怎么开始
  5. 2020洪灾地图_卫星地图看洪灾:为何湖北易发洪水?
  6. 【Python】jieba库的使用
  7. 前端面试汇总(Bootstrap框架)
  8. PaddlePaddle飞桨OCR文本检测——入门安装GPU版(一)
  9. Project Euler Problem 25 1000-digit Fibonacci number
  10. Java连接数据库并实现添加数据有重复不插入数据
  11. openwrt 需要高级浏览器_树莓派 + OpenWrt 实现 BT 下载机
  12. 网上体育商城的设计与实现
  13. C++链接器工具错误:LNK2001, LNK2019
  14. AI圣经《深度学习》作者斩获2018年图灵奖,100 万奖励!...
  15. 富士康员工的逆袭之路,从月薪4K到现在月入1W+,是如何做到的?
  16. 行业分析-全球与中国抛光混凝土地板市场现状及未来发展趋势
  17. ubuntu18美化(完整版)
  18. 您的 MAD 得分是多少?| MAD Skills
  19. thumbnail的处理流程和读取缩略图thumbnail所在sample的index的方法
  20. 手机网速测试软件排行榜,手机网速测试软件排行 手机网速测试软件推荐

热门文章

  1. ddd的战术篇: domain object之一
  2. 怎样访问服务器里的数据库文件,服务器里如何访问数据库文件
  3. 神界危机3.4通关方略
  4. 数字后的顿号变成斜杠 - 解决方案
  5. 一文读懂数仓建设和数据治理
  6. NSTimer使用注意总结
  7. 小白学编程(CSS):会发光的边框
  8. 直播带货源码的核心功能以及对直播源码的选择技巧
  9. 微信小程序----图片预览
  10. mysql过滤查询结果,IF的使用