如何使用Java开发QQ机器人 方法一
使用Java開發QQ機器人- CQ & HTTP API
警告 此方法已經無效,可以看simple-robot框架 2.x的帖子:如何用Java寫QQ機器人 v2.0。
使用庫Q平臺下的CQ HTTP API插件以及simple-robot核心標準庫作為依賴。
此插件與框架的 簡陋 簡單介紹:文檔處簡介
前往項目Github地址點擊star以收獲作者的感謝:GayHub
如果需要獲得更好的閱讀體驗,請前往 原文檔 -> 組件-酷Q-CoolQ HTTP API(推薦) -> 快速開始 處閱讀
或嘗試直接進入快速開始
快速開始
一、安裝
1. 下載并安裝 酷Q
前往酷Q官方下載地址下載酷Q應用,并安裝(啟動一次),然后關閉。
2. 下載并安裝 CQ HTTP API插件
①. 前往CQ HTTP API的 releases 下載最新版本。
②. 將下載好的.cpk格式文件移動至酷Q根目錄下的/app文件夾下。此時你有可能會發現此目錄下已經存在一些.cpk文件了,那可能是酷Q應用下載的時候自帶的。你可以選擇保留它們,也可以選擇刪除它們。
③. 啟動一次酷Q程序,右鍵酷Q標志,選擇:應用 > 應用管理,如圖所示:
然后將會出現應用管理界面,選擇HTTP API插件并選擇啟用,如圖所示:
默認情況下,插件會彈出一個黑窗口,并輸出日志信息。此時如果你關閉黑窗口,酷Q可能會崩潰并提示錯誤信息。不過沒有關系,可以先暫時關閉它并暫時關閉酷Q。安裝完插件后的此次啟動主要目的是為了讓插件自動生成一次配置文件。
如果你有信心,可以選擇直接查看CQ HTTP API插件的 配置文檔 進行手動配置。
3. 創建Java項目
你可以使用一切支持的方式來自動構建項目,以下將會舉幾個例子:
版本號請自行替換為 Maven倉庫中的最新版本:https://search.maven.org/artifact/io.github.ForteScarlet.simple-robot-core/component-forcoolqhttpapi
①. Maven
<dependency><groupId>io.github.ForteScarlet.simple-robot-core</groupId><artifactId>component-forcoolqhttpapi</artifactId><version>${version}</version> </dependency>②. Gradle
compile group: 'io.github.ForteScarlet.simple-robot-core', name: 'component-forcoolqhttpapi', version: '${version}'③. Grape
@Grapes(@Grab(group='io.github.ForteScarlet.simple-robot-core', module='component-forcoolqhttpapi', version='${version}') )二、 使用
4. 配置
有兩個地方需要你進行配置:
- 酷Q的CQ HTTP API
- 你需要啟動的Java程序
OK,讓我們一個一個來。
①. CQ HTTP API插件配置
首先,這里給出CQ HTTP API插件配置的官方說明文檔地址:配置文檔
如果你有能力根據文檔自己進行配置,可以選擇跳過此小節。
其次,上面提到了啟動一次應用,可以自動生成插件的一個配置文件,此文件位于{酷Q根目錄}\data\app\io.github.richardchien.coolqhttpapi下的config.ini文件。
[warning] 如果沒有,那么請參照官方配置文檔進行尋找。
你需要將文件內容大致修改為如下內容:
[warning] 其中標注${…}的參數請根據描述自行修改為想要設置的值,且暫時記住它們,后續的Java配置中會用到。
[general] host = 0.0.0.0 post_url = http://${java程序所在IP}:${Java程序監聽端口}${Java程序Http服務請求路徑} port = ${酷Q插件監聽的端口}[info] 其余參數可查看文檔并根據需求選填。框架暫時不支持請求頭驗證,所以請暫時不要開啟access_token與secret參數,且post_message_format參數也請使用默認,即string。
②. Java配置
Java配置有兩種方式:
- 代碼配置
- 文件配置
由于目前文件配置尚比較繁瑣,便暫時先只介紹代碼配置的方式。如果對目前的較為繁瑣的文件配置有興趣,請在了解代碼配置的情況下查看 文件配置方式
首先,創建一個類,實現com.forte.component.forcoolqhttpapi.CoolQHttpApp接口,并實現接口中的before與after方法。
現在假定你這個類叫做**RunApp**, 方便后續的代稱。當然,它實際上叫做什么都無所謂。
可以發現,before方法中存在一個叫做CoolQHttpConfiguration的參數,我們就要通過這個參數對象進行配置。
以下我將會列舉最常見的幾項配置信息,而全面的配置可選項請查看核心通用配置 與 組件額外配置
還記得上面提到的...替換嗎?這里也一樣哦而且注意,如果{...}替換嗎?這里也一樣哦~而且注意,如果...替換嗎?這里也一樣哦?而且注意,如果{…}的提示信息是一樣的,那么它們的值也應該是一樣的哦!
configuration.setIp("${酷Q所在的IP}"); configuration.setJavaPort(${Java程序監聽端口}); configuration.setServerPort(${酷Q插件監聽的端口}); // 默認為一個斜杠"/" configuration.setServerPath("${Java程序Http服務請求路徑}");③. 舉個例子
此處我會給上述所有的${...}賦上一個值,來舉個例子。
假如:
那么兩邊的對應配置就分別為:
酷Q:
Java:
configuration.setIp("192.168.101.101"); configuration.setJavaPort(15514); configuration.setServerPort(5700); configuration.setServerPath("/coolq");5. 運行
歷盡千辛萬苦,終于到了這一步。
首先,你要先啟動你的酷Q應用以及CQ HTTP插件。
然后,新建一個main方法在任意地方。
寫下以下代碼,并且別忘了那個RunApp實際上代表了什么:
如果這時候一看到控制臺所輸出的日志中最終出現了你的機器人的一些信息,那么恭喜,這說明你已經發送、獲取、設置消息了。
那么能不能監聽到消息呢?寫一些代碼來測試一下吧。
6. 第一個監聽器
①. 新建一個類
默認情況下,盡量在RunApp的子級目錄下創建,否則有可能會導致監聽函數無法被掃描到。
創建好之后,在這個類上標注一個注解:@com.forte.qqrobot.anno.depend.Beans, 即@Beans
②. 寫一個監聽私信的方法
我們寫一個監聽私信消息滿足正則:hello.*的私信消息監聽函數,且當我們收到消息后,復讀。
完整代碼如下:
注:如果在默認配置的情況下,監聽器的被掃描包范圍在RunApp啟動器的同級包目錄與其子目錄。
③. 在來一次
這次我們再啟動一次,如果發現啟動日志中成功加載了這個監聽函數,那就試著給你的機器人發送一句hello world吧。
如果它也回復了你一句hello world,那么說明至此你已經成功了,可以繼續深入的探索 文檔 中所提供的豐富功能并實現你想要的機器人吧~
7. 失敗了?
如果跟著上述流程完整無誤的操作卻無法成功,也不要氣餒,嘗試根據常見問題匯總進行排查。
總結
以上是生活随笔為你收集整理的如何使用Java开发QQ机器人 方法一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux中vi后如何退出命令,linu
- 下一篇: 计算机毕业论文基于springboot的