天天看点

Python 搭建一个简易QQ机器人

本次搭建的QQ机器人基于nonebot。可以参考官方文档:nonebot指南

我的项目地址 : 简单QQ机器人项目

  1. 安装nonebot:
pip install nonebot
           

tips:python版本要>=3.6.1

  • 下载酷Q:

    官方地址

    然后可以跟着酷Q的新手教程走一遍

  • 安装 CoolQ HTTP API 插件

    官方地址

    继续跟着教程走

  • 在这提一下CoolQ HTTP API插件的配置
Python 搭建一个简易QQ机器人

进入该目录后就可以进行配置了。

  • 新建一个Python文件,加入以下代码:
import nonebot

if __name__ == '__main__':
    nonebot.init()
    nonebot.load_builtin_plugins()
    nonebot.run(host='127.0.0.1', port=8080)
           

第1行代码:导入nonebot库

第4行代码:使用默认配置初始化 NoneBot 包

第5行代码:加载 NoneBot 内置的插件

第6行代码:在地址 127.0.0.1:8080 运行 NoneBot

提示

这里 nonebot.run() 的参数 host='127.0.0.1' 
表示让 NoneBot 监听本地环回地址,
如果你的 酷Q 运行在非本机的其它位置,
例如 Docker 容器内、局域网内的另一台机器上等,
则这里需要修改 host 参数为希望让 CoolQ HTTP API 插件访问的 IP。
如果不清楚该使用哪个 IP,或者希望本机的所有 IP 都被监听,
可以使用 0.0.0.0。
           
  • 再次配置CoolQ HTTP API 插件

    照着之前的方法打开名为 “user-id”.json 的文件(“user-id” 为你登录的 QQ 账号)

    修改如下配置项:(有则改,无则加)

"ws_reverse_api_url": "ws://127.0.0.1:8080/ws/api/",
  "ws_reverse_event_url": "ws://127.0.0.1:8080/ws/event/",
  "use_ws_reverse": true
           

配置好后重启插件

  • 运行你写的Python文件,若配置成功,控制台应该会输出以下内容:
[2019-10-01 15:55:21,745] 127.0.0.1:50971 GET /ws/api/ 1.1 101 - 1031
[2019-10-01 15:55:22,044] 127.0.0.1:50972 GET /ws/event/ 1.1 101 - 996
           

这表示 CoolQ HTTP API 插件已经成功地连接上了 NoneBot,与此同时,插件的日志文件中也会输出反向 WebSocket 连接成功的日志。

注意

如果到这一步你没有看到上面这样的日志,请查看插件的日志文件中是否在不断尝试重连(可通过将插件的 show_log_console 配置项设置为 true 来显示日志控制台,方便调试),如果没有在不断重连,也说明连接成功.

除此之外,也可以直接向机器人随便发送一些消息,观察 NoneBot 运行日志中是否有输出,如果有,说明连接成功。

如果 NoneBot 运行日志中没有任何访问日志,插件的日志中也在不断重连,请注意检查配置中的 IP 和端口是否确实可以访问。
           

接下来向你的机器人发送如下消息:

/echo 你好,世界
           

如果你的机器人向你回复:你好,世界。那么恭喜你搭建成功!