1. 程式人生 > 實用技巧 >QQ群訊息監聽並將訊息儲存到SQLite資料庫中

QQ群訊息監聽並將訊息儲存到SQLite資料庫中

目錄

一、前言

二、效果圖

1、外掛介面

2、SQLite資料庫

3、QQ群訊息

三、準備工作

1、CQA軟體

2、CQA-SDK易語言版本

3、易語言破解版

4、使用到的相關模組

四、開始擼程式碼

五、結尾


一、前言

公司有個需求,需要抓取QQ群裡的訊息內容,把訊息內容儲存到資料庫當中。做這個功能之前,網上到處找了很多相關的資料及軟體。有看到很多群訊息監控的軟體,但是都不太滿足博主的要求,整來整去,最後博主還是決定自己開發一個,畢竟自己開發的原始碼啥的都在自己手裡,想做成什麼樣子都可以,完全隨自己的心意。這篇部落格就記錄一下如何實現,僅供大家學習交流。

大致的講一下整個過程:博主是利用了酷Q機器人的SDK,自己開發了一個小小的外掛實現的,現在酷Q社群有的時候可以開放註冊,有的時候又註冊不了,博主為了這個社群賬號可謂是煞費苦心好不容易才註冊到一個賬號的。不過貌似註冊到了賬號,也無濟於事,下載下來的SDK報錯,沒法解壓,根本沒法用,後來又各種找SDK,終於在CSDN上面找到一個可用的SDK包,花了50個C幣,沒讓我失望,下載之後可以使用。整個外掛是易語言寫的,沒辦法又花了兩天的時間學習易語言的語法,大致掌握之後開始了造輪子之旅。

目前已經實現的功能:1、可抓取的指定QQ群的訊息內容並且儲存到SQLite中。2、可動態配置資料庫地址以及表名稱。3、可動態配置需要將訊息推送至的伺服器地址。

注:需要用到的東西,都可以直接通過博主分享的網盤進行下載,不需要再花費大家的c幣了。

二、效果圖

老規矩,先貼上已經完成的效果圖,畢竟看到效果圖才會知道是不是自己想要的東西嘛。

1、外掛介面

2、SQLite資料庫

3、QQ群訊息

三、準備工作

1、CQA軟體

連結:https://pan.baidu.com/s/1_yFA9aVZbLX9pySgjXYz8Q
提取碼:jacz

2、CQA-SDK易語言版本

連結:https://pan.baidu.com/s/1b0JlIolT9pTi-vS5zd-jmQ


提取碼:ukzx

3、易語言破解版

連結:https://pan.baidu.com/s/1_WUeQQSLvP2HdsUBlU68MA
提取碼:4p7y

4、使用到的相關模組

連結:https://pan.baidu.com/s/1e6pyYHhAdcpJTA95r0RRhw
提取碼:ahdk

四、開始擼程式碼

把相關的東西下載下來之後,就可以開始擼程式碼了,將SDK中的demo目錄複製到CQA軟體目錄下面

名字改成:com.carter.group

編輯 app.json 檔案,內容使用以下內容替換

// 酷Q 的Json檔案支援以 // 開頭的註釋。
// 開發模式下,應用的 app.dll, app.json 的檔案須放在 dev/[appid]/ 目錄下,應用 AppInfo 函式返回的內容須改為 appid
// 如 appid=com.example.demo, 則dll及json檔案需分別放在 dev/com.example.demo/app.dll、dev/com.example.demo/app.json
{
"ret":1, // 返回碼,固定為1
"apiver":9, // Api版本,本SDK為9
"name":"群訊息監聽", // 應用名稱
"version":"1.0.0", // 應用版本
"version_id":1, // 應用順序版本(每次釋出時至少+1)
"author":"Carter", // 應用作者
"description":"監聽指定的群訊息,儲存到指定的SQLite資料庫中",
"event":[ // 事件列表,同一事件型別可重複定義(釋出前請刪除無用事件)
{
"id":1, // 事件ID
"type":21, // 事件型別
"name":"私聊訊息處理", // 事件名稱
"function":"_eventPrivateMsg", // 事件對應函式
"priority":30000 // 事件優先順序(參見 cq.im/deveventpriority)
},
{
"id":2,
"type":2,
"name":"群訊息處理",
"function":"_eventGroupMsg",
"priority":30000
},
{
"id":3,
"type":4,
"name":"討論組訊息處理",
"function":"_eventDiscussMsg",
"priority":30000
},
{
"id":4,
"type":11,
"name":"群檔案上傳事件處理",
"function":"_eventGroupUpload",
"priority":30000
},
{
"id":5,
"type":101,
"name":"群管理變動事件處理",
"function":"_eventSystem_GroupAdmin",
"priority":30000
},
{
"id":6,
"type":102,
"name":"群成員減少事件處理",
"function":"_eventSystem_GroupMemberDecrease",
"priority":30000
},
{
"id":7,
"type":103,
"name":"群成員增加事件處理",
"function":"_eventSystem_GroupMemberIncrease",
"priority":30000
},
{
"id":10,
"type":201,
"name":"好友已新增事件處理",
"function":"_eventFriend_Add",
"priority":30000
},
{
"id":8,
"type":301,
"name":"好友新增請求處理",
"function":"_eventRequest_AddFriend",
"priority":30000
},
{
"id":9,
"type":302,
"name":"群新增請求處理",
"function":"_eventRequest_AddGroup",
"priority":30000
},
{
"id":1001,
"type":1001,
"name":"酷Q啟動事件",
"priority":30000,
"function":"_eventStartup"
},
{
"id":1002,
"type":1002,
"name":"酷Q關閉事件",
"priority":30000,
"function":"_eventExit"
},
{
"id":1003,
"type":1003,
"name":"應用已被啟用",
"priority":30000,
"function":"_eventEnable"
},
{
"id":1004,
"type":1004,
"name":"應用將被停用",
"priority":30000,
"function":"_eventDisable"
}
],
"menu":[ // 設定選單(釋出前請刪除無用選單,如果無需設定選單請全部刪除)
{
"name":"監聽設定", //選單名稱
"function":"_menuA" //選單對應函式
}
],
"status":[ // 懸浮窗狀態(見 com.example.status 樣例) ],
"auth":[ // 應用許可權(釋出前請刪除無用許可權)
101, //傳送群訊息 sendGroupMsg
103, //傳送討論組訊息 sendDiscussMsg
106, //傳送私聊訊息 sendPrivateMsg
130, //取群成員資訊 getGroupMemberInfoV2 / getGroupMemberInfo
131, //取陌生人資訊 getStrangerInfo
160, //取群成員列表 getGroupMemberList
161, //取群列表 getGroupList
180 //撤回訊息 deleteMsg
]
}

將相關模組放到以下目錄中

進入到 com.carter.group 目錄中使用易語言破解版開啟 app.e 檔案,點選左邊的程式,將使用到的模組引入,預設會引入SDK,這邊只需要引入精易模組即可。

點選 工具 -> 支援庫配置 把SQLite3 勾選上

拖拽右邊的元件,將視窗畫出來

全域性變數替換成以下內容

視窗程式集原始碼如下,直接放原始碼好像不太好放,下面就直接截圖吧,伸手黨可以直接下載博主分享的外掛,只是學習的話,將就一下看看圖片吧。原始碼比較長,所以截圖可能會比較多一點。

開始編寫CQ應用程式碼

最後一個修改的地方

修改完了之後點選 編譯 -》靜態編譯 即可得到一個 app.dll 的檔案

執行CQA軟體,找到應用管理就可以看到自己開發的外掛了

如果要打包外掛,選中自己的外掛,然後點選開發即可

打包之後會生成以下外掛,這個檔案就可以釋出出去給大家一起使用了

下面是博主已經打包後的外掛,要直接用的可以下載使用

下載地址:https://download.csdn.net/download/Wjhsmart/12589454

將外掛複製到CQA的app目錄下面即可使用

如果想下載原始碼執行起來研究,可以點選下面的下載地址下載原始碼。

下載地址:https://download.csdn.net/download/Wjhsmart/12589519

五、結尾

寫教程還真不是件容易的事情,需要考慮到各種情況,如果有漏掉的地方歡迎大家留言指正,博主會及時更正的。