本示例將會(huì)使用” 嚶鵡學(xué)舌” 這個(gè)小插件的實(shí)現(xiàn)來演示如何使用 Newbe.Mahua 實(shí)現(xiàn)第一個(gè)機(jī)器人插件。
入坑提示
建議開發(fā)者先根據(jù)自身需求結(jié)合表格,選擇屬于自己的專屬開發(fā)框架,避免浪費(fèi)時(shí)間。
- 編寫一套代碼就能在多個(gè)平臺(tái)運(yùn)行
- 支持使用除了 C# 之外的開發(fā)語言來開發(fā)
- 我希望他足夠簡單,不用學(xué)習(xí)太多就能掌握,通常只需要半個(gè)小時(shí)就能掌握所有內(nèi)容
- 我希望社區(qū)的反饋?zhàn)銐蚩欤袉栴}都可以幫我解決
SDK 名稱(1)(2)(3)(4)論壇中的其他 SDK????Jie2GG.Native.Csharp.Frame????Newbe.Mahua V2????Newbe.Mahua V1????
論壇其他 SDK 的鏈接
- CQP
- MPQ
- QQLight
插件功能
自動(dòng)將發(fā)送者的消息回發(fā)給發(fā)送人,嚶鵡(Parrot,其實(shí)是說嚶嚶嚶怪)學(xué)舌。
基礎(chǔ)環(huán)境要求
- windows 操作系統(tǒng)
- .Net Framework 4.6.1 及以上
- Powershell 5.0 及以上,僅開發(fā)環(huán)境要求
設(shè)置 Powershell 執(zhí)行策略限制
參考鏈接:http://www.pstips.net/powershell-create-and-start-scripts.html
簡單來說,使用管理員權(quán)限在 cmd 中運(yùn)行以下命令:
powershell -command "Set-ExecutionPolicy RemoteSigned -Force"
下載機(jī)器人平臺(tái)
需要從各機(jī)器人平臺(tái)下載最新的軟件,各平臺(tái)官網(wǎng)地址:
名稱地址費(fèi)用CQPhttps://cqp.cc/Air 免費(fèi),Pro 收費(fèi)MPQhttps://f.mypcqq.cc/thread-2327-1-1.html免費(fèi)QQLighthttp://www.52chat.cc/Air 免費(fèi),Pro 收費(fèi)
選擇開發(fā)者喜歡的平臺(tái),下載完畢后,將壓縮包解壓備用。
本教程將采用 CQP 作為主要演示平臺(tái)。
安裝 Newbe.Mahua
點(diǎn)擊此處 Newbe.Mahua.Installer,下載這個(gè)文件夾下所有的文件。
或者,可以點(diǎn)擊此處下載其中的 Newbe.Mahua.Installer.zip 壓縮包。壓縮包中的內(nèi)容與以上鏈接一致。
將下載的文件放置到機(jī)器人軟件的 exe 所在的文件夾。
使用控制臺(tái)打開機(jī)器人軟件的 exe 所在的文件夾,然后執(zhí)行以下命令
mahua.bat InstallMahua
計(jì)算機(jī)第一次安裝 Newbe.Mahua 時(shí)將會(huì)花費(fèi)較多的時(shí)間,需要下載約 50M 左右的軟件包,需要耐心等待。
以下便是一次安裝的效果圖:

啟用 Newbe.Mahua.Agent 插件
各個(gè)機(jī)器人平臺(tái)的啟用方式各不相同。
CQP
按照下圖所示,開啟開發(fā)者模式。

打開插件管理將插件啟用。
MPQ、QQLight
打開插件管理將插件啟用。
嘗試調(diào)用 HTTP API
Newbe.Mahua 默認(rèn)將啟動(dòng) HTTP API 以便外部進(jìn)行調(diào)用。API 文檔的地址默認(rèn)是 http://127.0.0.1:36524/apiDoc
以下便是一個(gè)調(diào)用 CQP 發(fā)送好友消息的示例:
注意:以下 API 調(diào)用需要根據(jù)實(shí)際的 API 文檔界面的參數(shù)提示進(jìn)行調(diào)用。此處文檔可能和真實(shí)的調(diào)用不同,請(qǐng)以文檔為準(zhǔn)。
request
POST http://127.0.0.1:36524/api/v1/Cqp/CQ_sendPrivateMsg
Content-Type: Application/json
{
"account": 472158246,
"msg": "月落大佬永遠(yuǎn)都是唯一的大佬!"
}
實(shí)際效果如下:

實(shí)現(xiàn)回調(diào)訂閱與處理
除了調(diào)用 API,框架本身還提供了回調(diào)的實(shí)現(xiàn),也就是在機(jī)器人觸發(fā)了 “收到好友消息” 等事件時(shí),通過一些方式回調(diào)開發(fā)者的程序。
本示例利用 HTTP 方式來實(shí)現(xiàn)需求。
默認(rèn)情況下,安裝完 Newbe.Mahua 之后,機(jī)器人的所有事件會(huì)通過 HTTP 的方式進(jìn)行回調(diào)。
例如,CQP 平臺(tái)收到好友消息時(shí),將產(chǎn)生如下請(qǐng)求:
request
POST http://localhost:65321/api/ReceiveMahuaOutput
Content-Type: application/json
{
"TypeCode": "ProcessPrivateMessage",
"SubType": 11,
"FromQQ": 472158246,
"Msg": "YUELUO : You unknow every lucky ubuntu owner",
"MsgId": 1408,
"Font": 147911064,
"Platform": 0,
"CreateTime": "2019-01-26T07:36:11.006313+00:00"
}
實(shí)現(xiàn)功能
基于 “調(diào)用” 和 “回調(diào)” 兩個(gè)內(nèi)容的處理,我們便可以實(shí)現(xiàn)以上需求。
這里給出一些常用編程語言的對(duì)應(yīng)實(shí)現(xiàn),其中包含有 C#/JAVA/JavaScript/Typescript 等開發(fā)語言。調(diào)用與回調(diào)方式包含有 HTTP/Websocket 等。
開發(fā)者可以點(diǎn)擊此處查看一些技術(shù)實(shí)現(xiàn)
成功!
發(fā)送消息給機(jī)器人,你就會(huì)收到機(jī)器人回發(fā)的信息。
機(jī)器人插件啟動(dòng)可能需要一段時(shí)間,并且大多數(shù)平臺(tái)都會(huì)丟棄離線信息,可能需要等待一會(huì)兒再發(fā)送。
教程鏈接
- 開始第一個(gè) QQ 機(jī)器人【適用于 v2.0 及以上】
發(fā)布說明
- Newbe.Mahua 2.4 恢復(fù) QQLight
- Newbe.Mahua 2.3 移除 CleverQQ
- Newbe.Mahua 2.2 可用性修復(fù)
- Newbe.Mahua 2.1 支持 Websocket
- Newbe.Mahua 2.0 不再僅僅支持 .Net
- 本文作者: newbe36524
- 本文鏈接: https://www.newbe.pro/Newbe.Mahua/Start-With-Mahua-In-V2.0/
- 版權(quán)聲明: 本博客所有文章除特別聲明外,均采用 BY-NC-SA 許可協(xié)議。轉(zhuǎn)載請(qǐng)注明出處!