Note 请先阅读 模块说明
api模块中,所有的API请求封装均在 love.forte.simbot.qguild.api
中,它们通常以 Api
结尾,例如 GetGuildApi
。
所有的API构造方法均被隐藏,它们会各自提供自身的工厂函数,绝大多数以 create
命名,例如
val api: GetGuildApi = GetGuildApi.create("123")
Gradle Kotlin DSL
api
模块是多平台模块,在Gradle中需要使用 kotlin
插件来引用正确的平台。这并不代表你需要使用Kotlin语言编写。
plugin {
java // 你仍然可以使用Java
kotlin("jvm") version "$KOTLIN_VERSION" // 比如 1.8.10
// 或者使用其他平台,例如 kotlin("js")
}
dependencies {
implementation("love.forte.simbot.component:simbot-component-qq-guild-api:$VERSION")
// 你需要自行选择一个想要使用的 ktor-http-client, 例如 cio 或 okhttp 等
// 更多选择参考 https://ktor.io/docs/http-client-engines.html
runtimeOnly("io.ktor:ktor-client-cio:$KTOR_VERSION")
}
Gradle Groovy
api
模块是多平台模块,在Gradle中需要使用 kotlin
插件来引用正确的平台。这并不代表你需要使用Kotlin语言编写。
plugin {
java // 你仍然可以使用Java
id "org.jetbrains.kotlin.jvm" version "$KOTLIN_VERSION" // 比如 1.8.10
// 或者使用其他平台,例如 kotlin("js")
}
dependencies {
implementation 'love.forte.simbot.component:simbot-component-qq-guild-api:$VERSION'
// 你需要自行选择一个想要使用的 ktor-http-client, 例如 cio 或 okhttp 等
// 更多选择参考 https://ktor.io/docs/http-client-engines.html
runtimeOnly 'io.ktor:ktor-client-cio:$KTOR_VERSION'
}
Maven
api
模块是多平台模块,在Maven中需要增加 -jvm
后缀来使用JVM平台库。
<dependency>
<groupId>love.forte.simbot.component</groupId>
<artifactId>simbot-component-qq-guild-api-jvm</artifactId>
<version>${VERSION}</version>
</dependency>
<!--
你需要自行选择一个想要使用的 ktor-http-client, 例如 cio 或 okhttp 等
更多选择参考 https://ktor.io/docs/http-client-engines.html
-->
<dependency>
<groupId>io.ktor</groupId>
<artifactId>ktor-client-cio-jvm</artifactId>
<version>${KTOR_VERSION}</version>
<scope>runtime</scope>
</dependency>
api模块是多平台的。支持的平台如下:
- JVM
- JS
- Native ( 前往 构建脚本 查看支持的目标,基本与 ktor中client支持的平台目标 一致。 )
其中,在使用native平台时请注意配置构造 HttpClient
时引擎的使用。(可参考 Ktor文档 )
以 mingwX64
目标为例,引入并使用 WinHttp 引擎后进行配置:
val client = HttpClient(WinHttp) { ... }
// 用于请求的 client 实例
val client: HttpClient = HttpClient(...) { ... }
val token: String = "你的请求用token" // token
// 得到一个api请求对象,此处为 获取Guild列表 API
val api = GetBotGuildListApi.create(before = null, after = null, limit = 10)
// api.request 发起请求并得到结果
// 如果失败可以捕获 QQGuildApiException 获取详情
val guildList: List<SimpleGuild> = api.request(
client = client,
server = QQGuild.SANDBOX_URL, // 请求server地址. 你可以通过 QQGuild.URL 得到一个官方的正式环境地址,或者其他自定义地址。
token = token,
decoder = Json // 可以省略
)
// 使用结果
guildList.forEach { guild ->
println(guild)
}
下述列表基本与 QQ频道机器人文档 中内容对应,如有遗漏或错误还望谅解并可通过 issues 反馈。
- 用户 API
- 频道 API
- 子频道 API
- 成员 API
- 频道身分组 API
- 子频道权限 API
- 消息 API
- 消息频率 API
- 私信 API
- 禁言 API
- 公告 API
- 精华消息 API (未测试)
- 日程 API (未测试)
- 表情表态 API
- 音频 API
- 帖子 API
- API接口权限 API
- WebSocket API
- QQ群聊
- C2C单聊