天天看點

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 你好,世界
           

如果你的機器人向你回複:你好,世界。那麼恭喜你搭建成功!