成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何用Python開發QQ機器人

開發 后端 機器人
雖然該文最終是達到以python開發mirai機器人的目的,但起步教程,尤其是環境配置上仍然有大量的相同操作,對其他編程語言仍有借鑒之處。

 前言

  •  雖然該文最終是達到以python開發mirai機器人的目的,但起步教程,尤其是環境配置上仍然有大量的相同操作,對其他編程語言仍有借鑒之處
  •  假設你已經安裝好了 Java、Python等運行必須的環境

mirai生態

  • mirai官方生態文檔[1]
  •  要使用mirai開發QQ機器人,首先要對其生態有一定的了解,因為它太復雜了,坑特別多,所以多了解一點,遇到問題之后解決起來也會更快
  •  mirai生態匯總圖

  •  簡單來說,mirai生態的核心是Mirai框架,其中包含了mirai-core及mirai-core-api兩部分。
  •  其中,前者負責協議相關的內容,而后者負責對外提供操作前者的接口。因此與程序員直接打交道的是mirai-core-api,而mirai-core,對我們是不可見的。
  •  使用mirai-core-api就已經可以開發QQ機器人了,但對萌新來說難度還是太大,于是mirai官方開發組編寫了一個QQ機器人程序,mirai-console,它在 mirai 框架提供的基礎功能的基礎上進行了封裝并進一步提供了更方便的開放接口。
  •  有了mirai-console,我們就不用直接去開發mirai的QQ機器人了,而是去開發mirai-console的插件,如下面的模式: 

  •  尷尬的是,開發mirai-console的插件,又需要使用java或者kotlin。如果你跟我一樣,對他們都不熟悉,那么官方的另一個插件mirai-api-http,則可以解決這個問題。
  •  于是借助mirai-api-http開發QQ機器人,就成了下面這種模式:  

  •  可以看到,當我們使用了mirai-api-http后,我們就有了更多的開發語言選擇。此處我選擇python。

起步

使用 mirai-console-loader 啟動 mirai-console

  •  根據上面的介紹,要開發一個mirai的QQ機器人,我們首先需要將mirai-console給運行起來,而要做到這一步,可難。例如你需要準備mirai-core,mirai-console 和 mirai-console-terminal,然后還需要通過一大串指令來啟動它。
  •  而官方顯然考慮到這一點,為了挽回被這一高難度操作勸退的萌新,官方又推出了mirai-console-loader(簡稱mcl) —— mirai-console 的官方一鍵啟動器。因此你僅需要下載它即可(第一步說的都不用管0.0)。github倉庫位置:mirai-console-loader[2]
  • 下載完成mcl之后,解壓、打開cmd、切換到mcl所在目錄、運行mcl。如下圖:    

  •  不出意外的話,mirai-console就成功啟動了,如下圖:    

  •  然而,咱從官方下載的項目,運行時卻出錯了0.0 ( 如果你沒有出錯,忽略此步驟 )。原因是配置文件出錯 (太倒霉了 - -)。修改方式如圖:    

  •  然后再重新運行一下,mcl,不出意料的話,能成功運行。
  •  第一個大坎就邁過了…接下來是另一個大坎

使用 mirai-login-solver-selenium 處理滑塊驗證輔助登錄

  •  在成功啟動的mcl窗口,運行命令登錄qq:login 賬號 密碼
  •  應該是會出錯的,因為mirai-console在登錄時,不能處理滑塊驗證:

 

  •  于是我們需要mirai的另一個項目 mirai-login-solver-selenium[3] 來輔助登錄
  •  mirai-login-solver-selenium安裝步驟 (需要先安裝 Chrome 瀏覽器)
  •  先結束掉之前運行的 mirai-console, 然后在命令行運行如下命令,添加該包 
  1. mcl --update-package net.mamoe:mirai-login-solver-selenium --channel nightly --type plugin 
  • 然后再重新運行mcl,這樣mcl就會去嘗試下載mirai-login-solver-selenium。
  •  然而,我這一步也出現問題了(如果你沒有問題,也請跳過)。因為它用到了selenium,所以就要用chromedriver。但是chromedriver總是下載失敗,所以這一步需要手動下載chromedriver,然后替換到對應目錄。步驟如下:

         1.  查看cmd窗口,找到mcl正在下載的chromedriver是什么版本        

         2.  然后去chromedriver的另一個鏡像源下載,推薦:chromedriver[4]

         3.  找到一個版本號相近的即可,例如我就下載 86.0.4240.22    

         4.   將下載好的文件解壓,再重命名成chromedriver-86.0.4240.198.exe,也就是剛剛我們在命令行窗口查看的文件名,一定要跟它想下載的文件名一致

         5.  結束之前運行的mcl命令行程序,然后將準備好的chromedriver-86.0.4240.198.exe, 替換到以下目錄

        

         6.  重新運行mcl程序,如果一切順利,就可以繼續之前的步驟,輸入命令:login 賬號 密碼 嘗試登錄。接下來會彈出一個瀏覽器窗口,你只需要傻瓜式的完成登錄驗證即可。如果登錄成功,以后的每次登錄,應該都是不需要再次驗證的。

  •  又跨過一個坎…接下來就到了另外一個坎

使用 mirai-api-http 增加語言拓展性 (為了能用其他語言來開發)

  •  前面一直在說 mirai-api-http,但是到目前為止,我們都還沒有用上它。前面的工作就做了兩個事情

          1.  使用mcl運行mirai-console

          2.  使用 mirai-login-solver-selenium 輔助通過滑塊驗證碼,完成登錄

  •  那么接下來就開始用mirai-api-http,首先在mirai-api-http項目地址,下載mirai-api-http[5]
  •  然后將下載到的jar包,放在plugin文件夾下,如圖    

  • 然后再重啟mcl,重新進行登錄。這樣準備工作就完成了,但是我出現了一些錯誤,看意思應該是簽名驗證的問題,錯誤如下:    

  •  四處咨詢后了解到,是oracle JDK的問題,因此只需要將orcaleJDK 替換成為 open JDK即可,步驟如下:

      1.  下載 open JDK[6],例如我下載如圖所示的版本:

      2.  解壓open JDK, 并放在你認為合適的位置,例如我放在如下圖所示的位置:   

      3.  添加 jdk 所在路徑到環境變量:此電腦 ->右鍵屬性 -> 高級系統設置 -> 高級 -> 環境變量, 再按下圖操作  

通過 graia-application-mirai 使用 python 開發 mirai 機器人

  •  前面的操作,直到該步為止,基本對所有使用除java/kotlin語言的程序員,都是通用的。而后面的操作,僅寫給使用python的程序員
  •  graia-application-mirai官方文檔[7]
  •  首先對mirai-api-http進行配置,如圖:

  •  以下是參考,自己看著配就行 
  1. # file: mcl-1.0.3/config/net.mamoe.mirai.api.http/setting.yml  
  2. authKey: graia-mirai-api-http-authkey # 你可以自己設定, 這里作為示范  
  3. # 可選,緩存大小,默認4096.緩存過小會導致引用回復與撤回消息失敗  
  4. cacheSize: 4096  
  5. enableWebsocket: true # 是否啟用 websocket 方式, 若使用 websocket 方式交互會得到更好的性能  
  6. host: '0.0.0.0' # httpapi 服務監聽的地址, 錯誤的設置會造成 Graia Application 無法與其交互  
  7. port: 8080 # httpapi 服務監聽的端口, 錯誤的設置會造成 Graia Application 無法與其交互 
  •  重啟mcl, 更新配置
  •  接著,安裝 python 操作 mirai-api-http 接口的模塊:graia-application-mirai

pip install graia-application-mirai

  •  將以下代碼復制到bot.py,按注釋提示,再結合剛剛對mirai-api-http的配置,稍作修改。然后運行 
  1. from graia.broadcast import Broadcast  
  2. from graia.application import GraiaMiraiApplication, Session  
  3. from graia.application.message.chain import MessageChain  
  4. import asyncio  
  5. from graia.application.message.elements.internal import Plain  
  6. from graia.application.friend import Friend  
  7. loop = asyncio.get_event_loop()  
  8. bcc = Broadcast(looploop=loop)  
  9. app = GraiaMiraiApplication 
  10.     broadcast=bcc 
  11.     connect_info=Session 
  12.         host="http://localhost:8080", # 填入 httpapi 服務運行的地址  
  13.         authKey="graia-mirai-api-http-authkey", # 填入 authKey 
  14.         account=5234120587, # 你的機器人的 qq 號  
  15.         websocket=True # Graia 已經可以根據所配置的消息接收的方式來保證消息接收部分的正常運作.  
  16.     )  
  17.  
  18. @bcc.receiver("FriendMessage")  
  19. async def friend_message_listener(app: GraiaMiraiApplication, friend: Friend):  
  20.     await app.sendFriendMessage(friend, MessageChain.create([  
  21.         Plain("Hello, World!")  
  22.     ]))   
  23. app.launch_blocking() 
  •  然后向你的QQ機器人,隨便發送一條消息,如果它回復你Hello, World!,則表示運行成功
  •  成功所示如下:    

結語

上面的全部操作,不過是使用mirai進行開發QQ機器人的起步教程而已,需要了解更多,還是去閱讀官方文檔,以學習更多的api。 

責任編輯:龐桂玉 來源: 馬哥Linux運維
相關推薦

2018-06-08 16:48:09

PythonQQ機器人

2021-07-22 10:17:55

加密機器人加密貨幣機器人

2020-10-15 15:42:00

人工智能

2016-08-04 10:04:49

PythonFlaskFacebook Me

2017-05-09 15:39:33

ensorFlow機器人機器學習

2020-12-31 06:55:37

機器人自然語言人工智能

2021-08-05 10:58:58

Facebook開源Droidlet

2021-08-19 15:44:20

機器人人工智能機器學習

2015-07-28 09:36:11

機器人

2017-03-28 12:21:21

機器人定義

2024-08-06 08:40:32

2015-12-10 21:49:32

IM機器人

2023-04-13 21:59:44

ChatGPT聊天機器人

2012-03-08 09:42:16

開源軟件Linux

2020-10-29 17:37:14

人工智能

2022-03-24 20:50:17

機器人人工智能

2024-09-26 10:05:57

2021-04-21 09:16:04

Python開發釘釘群機器人

2020-04-14 15:33:37

Python 釘釘機器人
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 狠狠视频 | 久久av一区二区三区 | 亚洲天堂一区二区 | 日本久久精 | 一级美国黄色片 | 日本高清视频在线播放 | 国产粉嫩尤物极品99综合精品 | 亚洲欧美日韩精品久久亚洲区 | 美女国内精品自产拍在线播放 | 午夜视频在线免费观看 | 免费国产视频在线观看 | 国产羞羞视频在线观看 | 日韩毛片免费视频 | 久久综合久 | 91看片视频 | 久久久国产精品一区 | 久久综合久色欧美综合狠狠 | 国产一区二区三区色淫影院 | 国产精品久久777777 | 日韩有码在线观看 | 日本不卡免费新一二三区 | 两性午夜视频 | 精品久久久久久 | 久久精品国产亚洲一区二区三区 | 欧美精品一区三区 | 日韩福利片 | www.色53色.com | 成人中文字幕av | 亚洲成人av在线播放 | 国产精品不卡视频 | 久久天堂网 | 日韩在线精品强乱中文字幕 | 九九亚洲精品 | 精品欧美一区二区精品久久久 | 久久夜色精品国产 | 激情视频网站 | 精品动漫一区 | 中文字幕一区二区三区不卡 | 国产成都精品91一区二区三 | 亚洲欧洲视频 | 91精品国产麻豆 |