成人免费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機器人

2012-03-08 09:42:16

開源軟件Linux

2023-04-13 21:59:44

ChatGPT聊天機器人

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技術棧公眾號

主站蜘蛛池模板: 三级成人在线 | 中文字幕亚洲无线 | 午夜欧美| 国产精品久久久久久久久久久久冷 | 国产精久久久久久久妇剪断 | 日韩中文字幕久久 | 一级黄色录像片子 | 人人九九 | 亚洲精品www.| 男人天堂99 | 日日夜夜精品视频 | 精品国产一区二区国模嫣然 | av影片在线| 久久里面有精品 | 大学生a级毛片免费视频 | 精品视频在线观看 | 91精品一区二区三区久久久久 | 久久99精品国产自在现线小黄鸭 | 久久成人午夜 | 中文字幕精品一区二区三区精品 | 久久国产视频一区 | 久久久久国产一区二区三区不卡 | 欧美在线观看一区 | 四虎影院新网址 | 国产综合久久 | 亚洲福利av | 免费观看羞羞视频网站 | 精品久久久一区 | 黄视频网站免费观看 | 亚洲成人在线免费 | 国产欧美精品区一区二区三区 | 欧美综合一区二区 | 国产精品一区在线 | 日韩欧美精品一区 | 免费在线视频精品 | 一区二区三区精品在线视频 | 天天操天天摸天天干 | 操到爽| 岛国av免费在线观看 | 欧美日韩国产一区二区三区 | 碰碰视频 |