运行一个QQ机器人吧,基于go-cqhttp

目前我在用的程序

1 系统环境

​​‌‌​​​‌‌​‌​​‌‌‍​‌​‌‌‌​​‌‌‌‌​‌​‍​‌​​‌​​​‌​​​‌‌​‍​‌​‌‌​​​‌‌​​​​​‍​​‌​‌‌‌‌‌‌‌‌​​​‍​‌‌​​‌‌‌​‌‌​​‌‌‌‍​‌‌​​​‌‌‌​​​‌​‌‍​​‌‌‌‌‌‌‌‌​​‌‌‍​​‌‌​​​‌​​‌‌​‌​‍​‌‌‌​​​​​​‌​‌‌‌‌‍​‌‌‌​‌‌‌‌​‌‌​​‌‌‍​‌‌​​​‌‌‌‌‌‌‌‌‌‍​‌‌​​​‌‌‌​‌​‌​‌‍‌​‌​‌‌‌​‍‌​‌​‌‌‌​‍​​‌‌​​​‌‌​​​‌​‌‍​‌​‌​​‌‌​​‌​‌‌‌‍​‌‌​​​‌​‌​​​‌​‌‍​‌​‌​‌‌‌‌​‌‌​​​‍​​​​​​​​‌‌‌‌​​‌‌‍​‌​‌​​​​​​​​‌​‌‍​‌‌​​​‌​‌‌‌​​​‌‍‌​​‌‌​​​‍‌​​‌​​​​‍‌‌​‌​​‌​‍‌​​‌‌‌​​‍‌​​​‌‌‌​‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​​‌​‌‌‍‌​​​‌‌‌‌‍​​‌‌‌‌‌‌‌‌​​‌​‍​​​​​​​​‌‌‌‌​​‌‌‍​​​‌​‌​‌‌​​‌‌‌​‍‌​​​‌​​​‍‌​​‌​‌‌‌‍‌​​‌​‌‌​‍‌​​​‌​‌‌‍‌​​‌‌​‌​‍‌​​‌‌​​‌‍‌​​‌‌‌‌​‍‌​​‌​​​‌‍​‌‌​​​‌​‌‌‌​​​‌‍‌‌​​‌‌​‌‍‌‌​​‌‌‌‌‍‌‌​​‌‌​‌‍‌‌​​‌‌‌​‍‌‌​‌​​‌​‍‌‌​​‌‌‌​‍‌‌​​‌‌​‌‍‌‌​‌​​‌​‍‌‌​​‌‌‌‌‍‌‌​​‌​​‌‍​‌​‌‌​‌‌‌‌​​‌​​‍​‌‌​​​​‌​‌​​​‌‌‍​​​​​​​​‌‌‌‌​​‌‌‍​‌​‌‌​​​‌‌​​​​​‍​​‌‌​‌​​‌‌‌‌​​​‍​‌​‌​​​‌‌​​‌‌‌‌‍​‌​‌​​​‌​‌‌‌‌‌‌‍​​​​​​​​‌‌‌​​‌​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​​‌​‌‌‍‌​​​‌‌‌‌‍‌​​​‌‌​​‍‌‌​​​‌​‌‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍‌​​​‌​​​‍‌​​​‌​​​‍‌​​​‌​​​‍‌‌​‌​​​‌‍‌​​‌‌‌​‌‍‌​​‌‌‌‌​‍‌​​‌​‌‌​‍‌​​‌‌​​‌‍‌​​‌‌‌‌​‍‌​​‌​​​‌‍‌‌​​​‌‌​‍‌‌​​‌​​​‍‌‌​‌​​​‌‍‌​​‌‌‌​​‍‌​​‌​​​‌‍‌​‌​​​‌‌‍‌​​‌‌‌‌​‍‌​​​‌‌​‌‍‌​​‌‌‌​​‍‌​​‌​‌‌‌‍‌​​‌​‌‌​‍‌​​​‌​​‌‍‌​​‌‌​‌​‍‌​​​‌‌​​‍‌​‌​​​‌‌‍‌‌​​‌‌‌​‍‌‌​​‌‌‌​‍‌‌​​​‌‌​‍‌‌​​​‌‌​‍‌​‌​​​‌‌‍​​​​​​​​‌‌‌‌​​‌‌‍​‌​​​​​​‌​‌​​​‌‍​‌‌​​​​​​​‌‌‌‌​‍​‌​‌‌‌​‌​​‌​​‌‌‍​‌‌​​​​‌‌‌​‌​​​‍​‌​‌‌​​​​​​‌​​​‍​​​​​​​​‌‌‌​​‌​‌‍​​​‌​​‌‌​​​​​‌​‍​‌​​​​‌‌‌‌‌‌​​‌‍‌​‌​‌‌‌‌‍‌​​‌​​‌‌‍‌​​​‌​‌​‍‌​​​‌‌​Nonebot2 的 Python 环境:3.7 以上

之前年少无知的我选择在服务器上安装了CentOS 7,系统的Python版本只有2.7.5...
升级Python版本、改系统环境...太多痛了,最后把系统搞崩了,不过还好我有前几天的快照
别管你是不是要部署Nonebot2,还是别用Cen­tOS了,而且不久它也要停更了

我的系统环境:Ubuntu 20.04 LTS (Py3.7.9)

2 安装go-cqhttp

以下配置均是 Linux 版本的说明,Win­dows 下配置类似。

如果遇到任何困难,查官方文档一定是个好办法

安装 go-cqhttp

go-cqhttp 文档: https://docs.go-cqhttp.org/guide/
go-cqhttp 下载地址:https://github.com/Mrs4s/go-cqhttp/releases

选择你合适的版本,并将 go-cqhttp 上传到你的服务器上(使用 SSH 工具或 BT 面板都可以)

go-cqhttp下载地址
go-cqhttp下载地址

我这里将 go-cqhttp 上传到 /root/​cqhttp

进入到 go-cqhttp 目录下面

cd /root/cqhttp

给权限,该行命令执行成功不会输出任何信息

chmod 777 go-cqhttp

运行 go-cqhttp, 如果没有执行上面一条命令则提示./​go-cqhttp: 权限不够

./go-cqhttp

Nonebot2 需要使用反向 Web­socket,这里我们直接输入 3 然后回车

如果你还想同时配置 QQbot 框架,可以输入 123 可以生成三种协议来使用

生成配置
生成配置

然后我们就能看到 cqhttp 目录下面多出来一个 config.yml 文件

修改 config.yml 文件

第 4 行和第 5 行分别是 QQ 的账号密码,没什么用 直接删除就行了

账号密码
账号密码

再往下,会看到反向WS设置的配置

# 反向WS设置
- ws-reverse:
    # 反向WS Universal 地址
    # 注意 设置了此项地址后下面两项将会被忽略
    universal: ws://your_websocket_universal.server
    # 反向WS API 地址
    api: ws://your_websocket_api.server
    # 反向WS Event 地址
    event: ws://your_websocket_event.server
    # 重连间隔 单位毫秒
    reconnect-interval: 3000
    middlewares:
      <<: *default # 引用默认中间件

修改为以下内容

- ws-reverse:
    universal: ws://127.0.0.1:8080/cqhttp/ws
# 重连间隔 单位毫秒
  reconnect-interval: 3000
  middlewares:
      <<: *default # 引用默认中间件

其中 ws://127.0.0.1:8080/cqhttp/ws 中的 127.0.0.1 和 8080 应分别对应 nonebot 配置的 HOST 和 PORT。

如果你的 nonebot 安装在另一台服务器上,请把 127.0.0.1 修改为另一台服务器的 IP(我就是在这一步没有配置好,导致一直连接失败)

配置完成,运行go-cqhttp

./go-cqhttp

会输出二维码,用登陆机器人账号的手机 QQ 扫一扫登录

(由于这两天腾讯老是抽风,这一步多试试才行)

此时 go-cqhttp 就配置完成并且成功运行了

3 安装Nonebot2

Nonebot2 文档: https://v2.nonebot.dev/guide/

(推荐)使用Virtualenv创建Python虚拟环境(也可以使用poetry创建)

安装 vir­tualenv

pip install virtualenv

创建虚拟环境,名称(nonebot)可以自己随意设置

virtualenv nonebot

进入虚拟环境文件夹

cd nonebot

激活环境,进入虚拟环境

source ./bin/activate

通过脚手架安装

使用 pip 或 其他包管理工具 安装 nb-cli,nonebot2 会作为其依赖被一起安装

pip install nb-cli

4 创建机器人

创建一个空项目

nb create

根据引导进行项目配置,完成后会在当前目录下创建一个项目目录

输入项目名称 我这里输入了qqbot
使用 ↓ 选择src文件夹
输入 y 回车
按下空格键选择cqhttp(注意变色才是选中),回车

修改机器人的项目配置

修改 qqbot 文件夹中的 .env 中内容

ENVIRONMENT=dev
CUSTOM_CONFIG=common config

修改.env.dev 为:

HOST=0.0.0.0
PORT=8080
DEBUG=true

修改.env.pord 为:

HOST=0.0.0.0
PORT=8080
SECRET=
ACCESS_TOKEN=

上述文件中的 PORT 要和 go-cqhttp 的 config.yml 文件中反向WS端口相同

在项目文件下使用命令行输入下述命令即可运行

nb run

由于我使用了虚拟环境需要使用下述命令先进入虚拟环境才能运行

sudo -i
cd nonebot
source ./bin/activate
cd qqbot
nb run

运行成功则会显示如下类似日志

5 检查 Nonebot2 和 go-cqhttp 是否通信成功

[0m[37m[2021-12-06 17:17:57] [INFO]: 开始尝试连接到反向WebSocket Universal服务器:
[0m[37m[2021-12-06 17:17:57] [INFO]: 正在检查更新.
[0m[37m[2021-12-06 17:17:57] [INFO]: 已连接到反向WebSocket Universal服务器

试试你的机器人是不是正常的,给你的机器人发消息吧

/echo 你好,世界
你好世界
你好世界

6 后台运行程序

上面的是前台运行,如果你操作其他命令或者关闭 ssh 工具,程序自然就关闭了

在检查一切正常之后,就可以使用命令进行后台启动了

分别进入对应的目录来分别执行下述命令

后台运行 go-cqhttp

nohup ./go-cqhttp &

后台运行 Nonebot2

nohup nb run &

在对应的文件夹下会生成 nohup.out 文件,这里存放运行的日志,可以用来查看是否正常运行

如果你想配置更多内容,可以查看 Nonebot2 和 go-cqhttp 的官方文档来进行配置。

7 使用 Nonebot2 插件

Nonebot2 插件商店:https://v2.nonebot.dev/store.html

还有一些商店没有收录的插件,你可以在 GitHub 中查找

注意:
1.文中二维码和链接可能带有邀请性质,请各位玩家自行抉择。
2.请勿通过链接填写qq号与密码、银行卡号与密码等个人隐私信息。
3.禁止纯拉人头,拉app注册等信息,发现必小黑屋。
4.同一种信息仅发一次,多发会被删除。
5.文章关联方不想展示也可以微信站长“socutesheep”删除。
本文由 @WhiteFan 发布。如若转载,请注明出处: 科技玩家 » 运行一个QQ机器人吧,基于go-cqhttp

给TA买糖
共{{data.count}}人
人已买糖
教程玩家投稿

nolanJDC配置有误获取token失败解决方法二

2021-12-9 19:44:00

教程玩家投稿精选文章

移动光猫吉比特GS3101 超管账号破解、改桥接、路由器拨号

2021-12-10 11:05:15

80 条回复 A文章作者 M管理员
贴心提醒
请认真对待作者付出,勿发表无意义言论,触发过滤规则的评论将无法提交,包含敏感词的评论会自动变成待审核状态哦。
  1. DragonTang

    学习先

  2. 我本土人

    强!👍

  3. Carol

    厉害了!赛高!👍

  4. MJYES

    太累了 抽取一名幸运老板为我抗下所有

  5. 林夕南

    支持支持

  6. 小牛牛

    QQ太容易被封了

  7.  🦁

    路过点赞

  8. 大军

    学习一下

  9. ze泽

    非常实用 发送消息很方便

  10. Atlantis

    很棒的教程

  11. Aether

    这个插件咋整

  12. lbs125

    牛,学习

  13. littleK

    收藏备用

  14. seatom

    继续加油哦,争取发表更多优秀帖子

  15. ImYoungH

    输入 y 回车(这一步也不能按y)
    按下空格键选择cqhttp(注意变色才是选中),回车
    onebot v11
    钉钉
    飞书
    tg
    qq频道
    开黑啦

    就是没有cqhttp

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索