都已經(jīng)2020年了,smart qq早就于2019年光榮下線,伴隨著他的離開,qqbot也不再維護,以往的基于smart qq和qqbot的QQ機器人的設計模式也已經(jīng)不復存在,今天,筆者將帶來一種全新的Python QQ機器人設計方式,基于python nonebot庫和cool Q打造QQ機器人。
組件介紹
cool q為何物?
酷Q官網(wǎng)
酷Q是一個“簡潔,輕盈,強大,免費”的qq機器人應用程序,甚至可以在群暉上搭建這樣的一套系統(tǒng),非常實用。官方將酷Q分為兩種不同的版本,一個是酷Q Air,另一個是酷Q Pro。這種命名習慣與某果十分相似~
對于兩種不同版本的區(qū)別,官方給出了下圖的解釋
兩種版本在下載時都是免費的,但是實際使用時pro版本是需要支付一定的費用的,筆者在這里就用Air版本進行QQ機器人的制作
nonebot庫為何物?
nonebot庫是一個基于酷Q的 Python 異步QQ機器人框架 ,官方給出了以下三種特性:
1.簡潔——提供極其簡潔易懂的 API,使你可以毫無壓力地開始驗證你的絕佳創(chuàng)意,只需編寫最少量的代碼,即可實現(xiàn)豐富的功能。
2.易于擴展——精心設計的消息處理流程及強大的 API 使得你可以很方便地將最簡單的原型變?yōu)榫哂写罅繉嵱霉δ艿耐暾奶鞕C器人,并持續(xù)保證擴展性。
3.高性能——基于時下流行的 asyncio 模塊,利用 WebSocket 進行通信,以獲得極高的性能;同時,支持使用多個機器人賬號來負載均衡用戶消息,減少業(yè)務宕機的可能。
開始準備
接下來就正式開始搭建!
-
安裝酷Q
點擊進入酷Q官網(wǎng)安裝

筆者使用的是酷Q Air小i版,不過既然我們選擇使用Python來進行機器人的開發(fā),所以具體選擇圖靈版還是小i版就顯得不那么重要了。
- 為酷Q安裝HTTP API插件

進入GitHub中之后點擊第一項下載即可。下載完成之后,我們需要打開酷Q的文件夾,在\酷Q Air\app目錄下將我們下載的HTTP API插件粘貼進去

之后,我們運行酷Q應用程序CQA.exe,并且輸入qq號和密碼登錄,之后在任務欄中找到酷Q的圖標并用鼠標右鍵點擊,找到【應用】-【應用管理】并進入配置界面。

找到HTTP API插件,并且點擊右下側的【啟用】按鈕。由于筆者已經(jīng)啟用了,因此按鈕變成了停用。

-
配置酷Q HTTP API插件
完成上述步驟之后,我們在酷Q文件夾中的
\酷Q Air\data\app\io.github.richardchien.coolqhttpapi\config目錄中找到<剛剛登錄的QQ號>.json文件,并且用記事本或者其他文本編輯器打開編輯。按照圖中的標注修改配置文件后保存退出。

至此為止,關于酷Q的準備已經(jīng)完成。
-
安裝python庫
接下來使用pip安裝nonebot庫
pip install nonebot
安裝完成后,我們的所有工具準備就已經(jīng)完成。
運行Python demo程序
我們創(chuàng)建一個python文件,并且運行官方的demo代碼
import nonebot
if __name__ == "__main__":
nonebot.init()
nonebot.load_builtin_plugins()
nonebot.run(host='127.0.0.1', port=8080)
運行程序,如果在控制臺中出現(xiàn)下面的內容,則表明配置成功,python正在監(jiān)聽qq消息

此時我們便可以測試運行效果,向剛剛我們登錄酷Q的qq號發(fā)送一條消息
/echo <content>

這樣我們就可以看到機器人重復我們和它說的話了。
異常處理
有時候,我們本地的127.0.0.1 8080端口可能會被占用導致運行python程序的時候產生如下錯誤:
OSError [WinError 10013]以一種訪問權限不允許的方式做了一個訪問套接字的嘗試
這時候我們使用管理員模式運行一個cmd窗口,輸入
netstat -ano|findstr 8080

這時候可以看到有一個進程號為 18292 的進程占用了我們的8080端口,我們需要將這個進程kill掉,在cmd窗口中繼續(xù)輸入
taskkill /pid <進程號> /F
如本例子中我們需要kill 18292進程,所以輸入taskkill /pid 18292 /F
這樣重新運行python程序就不會出現(xiàn)剛才的異常了。
結束語
以上就是打造qq機器人的基本步驟,本教程持續(xù)更新~
