2020年,手把手教你打造Python QQ機器人

都已經(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 Air小i版,不過既然我們選擇使用Python來進行機器人的開發(fā),所以具體選擇圖靈版還是小i版就顯得不那么重要了。

  • 為酷Q安裝HTTP API插件

github地址

進入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ù)更新~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容