體驗 QQ機器人C# SDK 1.X 特性總結
主要特性
依賴注入
日誌
依賴於 Liblog
與 NLog
框架支援輸出多種多樣的日誌資料,以便開發者進行開發除錯。
預設情況下,框架將會把日誌輸出在機器人平臺根目錄的 logs 資料夾中。
除錯
框架本身支援進行除錯外掛與除錯框架原始碼。
Session機制
Session 機制是框架基於 Autofac
採用的一套API生命週期管理方案。簡要而言,框架將每次事件觸發過程,當做一次 Session 進行控制。
開發者可以依賴這一生命週期特性,完成一些業務操作的連貫性。例如:保證整個事件的處理過程屬於同一資料庫事務。
詳細的使用方法建議在瞭解 Autofac
相關的用法之後進行探究。
熱更新
熱更新機制為開發者提供了不需要重啟機器人平臺便能夠更新外掛的功能。
訊息傳送Fluent API
依賴於 Session 機制,Fluent API 為開發者提供了能夠通過鏈式呼叫的方式傳送訊息的功能。
通過Fluent API 的操作方法,開發者可以類似於資料庫事務一樣,在多個物件中拼裝訊息內容,而在最終決定是否傳送訊息。
設定中心
框架提供了一套基於 WPF 的統一設定中心,開發者可以使用此設定中心來製作自己的應用設定介面。
當然開發者可以完全擴展出自己的設定中心。
擴充套件API與平臺原生API
開發者可以通過 IMahuaApi
呼叫框架提供的API,通過這些API能夠實現大部分的業務需求。
但由於不同平臺的支援程度不同,因此實現上存在差異。但開發者可以通過擴充套件 IMahuaApi
的實現,進一步達到自己的需求。
並且,框架也提供了各平臺原生的API。
常見問題
大佬,這裡有個問題能幫我看一下嗎?
不能。
框架免費嗎?
免費。
哪裡有框架的原始碼?
無法將“Install-PackageProvider”項識別為 cmdlet、函式、指令碼檔案或可執行程式的名稱…
怎麼非同步傳送訊息?
由於 Session 機制的存在,直接呼叫注入事件的IMahuaApi
執行是必然失敗的。因此,需要在非同步程式碼中能夠開啟新的 Session 才能夠正常使用介面。
示例如下:
// 非同步傳送訊息,不能使用 _mahuaApi 例項,需要另外開啟Session
Task.Factory.StartNew(() =>
{
using (var robotSession = MahuaRobotManager.Instance.CreateSession())
{
var api = robotSession.MahuaApi;
api.SendPrivateMessage(context.FromQq, "非同步的嚶嚶嚶");
}
});
怎麼解析API中好像加密了的群列表?
IMahuaApi
中提供瞭解析成模型的API介面。字串本身如何解析可以參考對應平臺的易語言SDK。
怎麼獲取群列表?
看IMahuaApi
。
怎麼獲取群成員列表?
看IMahuaApi
。
怎麼獲取好友列表?
看IMahuaApi
。
能不能發紅包?
不能。
有沒有微信SDK?
沒有。
為什麼複製了啟動之後,報錯了?
- 重看教程,確認真的都看完了看準了
- 看日誌,日誌中記錄了錯誤資訊