日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

如何使用Java开发QQ机器人 方法一

發(fā)布時間:2024/8/1 java 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何使用Java开发QQ机器人 方法一 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

使用Java開發(fā)QQ機器人- CQ & HTTP API





警告 此方法已經(jīng)無效,可以看simple-robot框架 2.x的帖子:如何用Java寫QQ機器人 v2.0。











使用庫Q平臺下的CQ HTTP API插件以及simple-robot核心標(biāo)準(zhǔn)庫作為依賴。

此插件與框架的 簡陋 簡單介紹:文檔處簡介

前往項目Github地址點擊star以收獲作者的感謝:GayHub

如果需要獲得更好的閱讀體驗,請前往 原文檔 -> 組件-酷Q-CoolQ HTTP API(推薦) -> 快速開始 處閱讀
或嘗試直接進入快速開始

快速開始



一、安裝

1. 下載并安裝 酷Q

前往酷Q官方下載地址下載酷Q應(yīng)用,并安裝(啟動一次),然后關(guān)閉。


2. 下載并安裝 CQ HTTP API插件

①. 前往CQ HTTP API的 releases 下載最新版本。
②. 將下載好的.cpk格式文件移動至酷Q根目錄下的/app文件夾下。此時你有可能會發(fā)現(xiàn)此目錄下已經(jīng)存在一些.cpk文件了,那可能是酷Q應(yīng)用下載的時候自帶的。你可以選擇保留它們,也可以選擇刪除它們。
③. 啟動一次酷Q程序,右鍵酷Q標(biāo)志,選擇:應(yīng)用 > 應(yīng)用管理,如圖所示:

然后將會出現(xiàn)應(yīng)用管理界面,選擇HTTP API插件并選擇啟用,如圖所示:

默認情況下,插件會彈出一個黑窗口,并輸出日志信息。此時如果你關(guān)閉黑窗口,酷Q可能會崩潰并提示錯誤信息。不過沒有關(guān)系,可以先暫時關(guān)閉它并暫時關(guān)閉酷Q。安裝完插件后的此次啟動主要目的是為了讓插件自動生成一次配置文件。

如果你有信心,可以選擇直接查看CQ HTTP API插件的 配置文檔 進行手動配置。


3. 創(chuàng)建Java項目

你可以使用一切支持的方式來自動構(gòu)建項目,以下將會舉幾個例子:

版本號請自行替換為 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插件配置的官方說明文檔地址:配置文檔
如果你有能力根據(jù)文檔自己進行配置,可以選擇跳過此小節(jié)。
其次,上面提到了啟動一次應(yīng)用,可以自動生成插件的一個配置文件,此文件位于{酷Q根目錄}\data\app\io.github.richardchien.coolqhttpapi下的config.ini文件。

[warning] 如果沒有,那么請參照官方配置文檔進行尋找。

你需要將文件內(nèi)容大致修改為如下內(nèi)容:

[warning] 其中標(biāo)注${…}的參數(shù)請根據(jù)描述自行修改為想要設(shè)置的值,且暫時記住它們,后續(xù)的Java配置中會用到。

[general] host = 0.0.0.0 post_url = http://${java程序所在IP}:${Java程序監(jiān)聽端口}${Java程序Http服務(wù)請求路徑} port = ${酷Q插件監(jiān)聽的端口}

[info] 其余參數(shù)可查看文檔并根據(jù)需求選填。框架暫時不支持請求頭驗證,所以請暫時不要開啟access_token與secret參數(shù),且post_message_format參數(shù)也請使用默認,即string。

②. Java配置

Java配置有兩種方式:

  • 代碼配置
  • 文件配置

由于目前文件配置尚比較繁瑣,便暫時先只介紹代碼配置的方式。如果對目前的較為繁瑣的文件配置有興趣,請在了解代碼配置的情況下查看 文件配置方式

首先,創(chuàng)建一個類,實現(xiàn)com.forte.component.forcoolqhttpapi.CoolQHttpApp接口,并實現(xiàn)接口中的before與after方法。

現(xiàn)在假定你這個類叫做**RunApp**, 方便后續(xù)的代稱。當(dāng)然,它實際上叫做什么都無所謂。

可以發(fā)現(xiàn),before方法中存在一個叫做CoolQHttpConfiguration的參數(shù),我們就要通過這個參數(shù)對象進行配置。
以下我將會列舉最常見的幾項配置信息,而全面的配置可選項請查看核心通用配置 與 組件額外配置

還記得上面提到的...替換嗎?這里也一樣哦而且注意,如果{...}替換嗎?這里也一樣哦~而且注意,如果...?{…}的提示信息是一樣的,那么它們的值也應(yīng)該是一樣的哦!

configuration.setIp("${酷Q所在的IP}"); configuration.setJavaPort(${Java程序監(jiān)聽端口}); configuration.setServerPort(${Q插件監(jiān)聽的端口}); // 默認為一個斜杠"/" configuration.setServerPath("${Java程序Http服務(wù)請求路徑}");

③. 舉個例子

此處我會給上述所有的${...}賦上一個值,來舉個例子。
假如:

${java程序所在IP}=192.168.0.1 ${Java程序監(jiān)聽端口}=15514 ${Java程序Http服務(wù)請求路徑}=/coolq ${酷Q插件監(jiān)聽的端口}=5700 ${酷Q所在的IP}=192.168.101.101

那么兩邊的對應(yīng)配置就分別為:
酷Q:

[general] host = 0.0.0.0 post_url = http://192.168.0.1:15514/coolq port = 5700

Java:

configuration.setIp("192.168.101.101"); configuration.setJavaPort(15514); configuration.setServerPort(5700); configuration.setServerPath("/coolq");

5. 運行

歷盡千辛萬苦,終于到了這一步。
首先,你要先啟動你的酷Q應(yīng)用以及CQ HTTP插件。
然后,新建一個main方法在任意地方。
寫下以下代碼,并且別忘了那個RunApp實際上代表了什么:

CoolQHttpApplication application = new CoolQHttpApplication(); // 啟動 application.run(new RunApp());

如果這時候一看到控制臺所輸出的日志中最終出現(xiàn)了你的機器人的一些信息,那么恭喜,這說明你已經(jīng)發(fā)送、獲取、設(shè)置消息了。

那么能不能監(jiān)聽到消息呢?寫一些代碼來測試一下吧。

6. 第一個監(jiān)聽器

①. 新建一個類

默認情況下,盡量在RunApp的子級目錄下創(chuàng)建,否則有可能會導(dǎo)致監(jiān)聽函數(shù)無法被掃描到。
創(chuàng)建好之后,在這個類上標(biāo)注一個注解:@com.forte.qqrobot.anno.depend.Beans, 即@Beans

②. 寫一個監(jiān)聽私信的方法

我們寫一個監(jiān)聽私信消息滿足正則:hello.*的私信消息監(jiān)聽函數(shù),且當(dāng)我們收到消息后,復(fù)讀。
完整代碼如下:

@Beans public class TestListener {@Listen(MsgGetTypes.privateMsg)@Filter("hello.*")public void testListen1(PrivateMsg msg, MsgSender sender) {System.out.println(msg);// 以下三種方法均可,效果相同sender.SENDER.sendPrivateMsg(msg, msg.getMsg()); // sender.SENDER.sendPrivateMsg(msg.getQQ(), msg.getMsg()); // sender.SENDER.sendPrivateMsg(msg.getQQCode(), msg.getMsg());} }

注:如果在默認配置的情況下,監(jiān)聽器的被掃描包范圍在RunApp啟動器的同級包目錄與其子目錄

③. 在來一次

這次我們再啟動一次,如果發(fā)現(xiàn)啟動日志中成功加載了這個監(jiān)聽函數(shù),那就試著給你的機器人發(fā)送一句hello world吧。
如果它也回復(fù)了你一句hello world,那么說明至此你已經(jīng)成功了,可以繼續(xù)深入的探索 文檔 中所提供的豐富功能并實現(xiàn)你想要的機器人吧~

7. 失敗了?

如果跟著上述流程完整無誤的操作卻無法成功,也不要氣餒,嘗試根據(jù)常見問題匯總進行排查。

總結(jié)

以上是生活随笔為你收集整理的如何使用Java开发QQ机器人 方法一的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。