
Unified API client for Fursuit.TV and VDS accounts, supporting API key, client-credentials, OAuth2 with local callback, automatic token refresh, modular endpoints, retries and configurable logging.
本仓库为第三方 SDK,与兽频道及 VDS 官方无关。基于 Kotlin Multiplatform 构建的跨平台 SDK,为 Fursuit.TV 和 VDS 账户系统提供完整的 API 访问能力。
// Gradle (Kotlin DSL)
dependencies {
implementation("com.furrist.rp:fursuit-tv-sdk:0.1.0")
}方式 1: 使用 apiKey(最简单)
val sdk = FursuitTvSdk(apiKey = "your-api-key")方式 2: 使用 clientId + clientSecret(推荐)
val sdk = FursuitTvSdk(
clientId = "vap_xxxxxxxxxxxxxxxx",
clientSecret = "your-client-secret"
)
runBlocking {
sdk.auth.exchangeToken(clientId, clientSecret)
}
// SDK 会自动管理令牌刷新方式 3: OAuth 2.0(需要用户授权)
// 第一步:初始化 SDK(传入 clientId 和 clientSecret)
val sdk = FursuitTvSdk(
clientId = "vap_xxxxxxxxxxxxxxxx",
clientSecret = "your-client-secret"
)
// 第二步:调用 OAuth 授权(自动使用 SDK 配置中的 clientId 和 clientSecret)
val oauthResult = sdk.auth.initOAuth(
config = OAuthConfig(callbackHost = "localhost", callbackPort = 8080)
)方式 4: 使用 accessToken
val sdk = FursuitTvSdk(accessToken = "your-access-token")// 获取用户资料
val profile = sdk.user.getUserProfile("username")
println("昵称:${profile.displayName}")
// 获取热门推荐
val popular = sdk.search.getPopular()
println("热门用户:${popular.users.size}")| 模块 | 描述 | 详细文档 |
|---|---|---|
| Auth | 认证与授权 | auth.md |
| Base | 基础接口 | base.md |
| User | 用户资料 | user.md |
| Search | 搜索发现 | search.md |
| Gathering | 聚会活动 | gathering.md |
| School | 学校角色 | school.md |
try {
val profile = sdk.user.getUserProfile("username")
} catch (e: TokenExpiredException) {
// 令牌过期,SDK 会自动刷新
} catch (e: AuthenticationException) {
println("认证失败:${e.message}")
} catch (e: NotFoundException) {
println("资源不存在")
} catch (e: ApiException) {
println("API 错误:${e.statusCode}")
}| 平台 | 要求 | 构建命令 |
|---|---|---|
| JVM | Java 17+ | ./gradlew jvmJar |
| JS | Node.js 16+ | ./gradlew jsJar |
| Native | iOS/macOS/Linux/Windows | ./gradlew compileKotlin<Platform> |
val config = SdkConfig(
apiKey = "your-api-key",
baseUrl = "https://open-global.vdsentnet.com",
requestTimeout = 60000,
logLevel = LogLevel.DEBUG,
enableRetry = true,
maxRetries = 3
)
val sdk = FursuitTvSdk(config)欢迎提交 Issue 和 Pull Request!
MIT License - 查看 LICENSE 文件。
感谢所有为这个项目做出贡献的开发者们!
注意: 本 SDK 仅供学习和研究使用。请确保遵守 Fursuit.TV 的使用条款和服务协议。
本仓库为第三方 SDK,与兽频道及 VDS 官方无关。基于 Kotlin Multiplatform 构建的跨平台 SDK,为 Fursuit.TV 和 VDS 账户系统提供完整的 API 访问能力。
// Gradle (Kotlin DSL)
dependencies {
implementation("com.furrist.rp:fursuit-tv-sdk:0.1.0")
}方式 1: 使用 apiKey(最简单)
val sdk = FursuitTvSdk(apiKey = "your-api-key")方式 2: 使用 clientId + clientSecret(推荐)
val sdk = FursuitTvSdk(
clientId = "vap_xxxxxxxxxxxxxxxx",
clientSecret = "your-client-secret"
)
runBlocking {
sdk.auth.exchangeToken(clientId, clientSecret)
}
// SDK 会自动管理令牌刷新方式 3: OAuth 2.0(需要用户授权)
// 第一步:初始化 SDK(传入 clientId 和 clientSecret)
val sdk = FursuitTvSdk(
clientId = "vap_xxxxxxxxxxxxxxxx",
clientSecret = "your-client-secret"
)
// 第二步:调用 OAuth 授权(自动使用 SDK 配置中的 clientId 和 clientSecret)
val oauthResult = sdk.auth.initOAuth(
config = OAuthConfig(callbackHost = "localhost", callbackPort = 8080)
)方式 4: 使用 accessToken
val sdk = FursuitTvSdk(accessToken = "your-access-token")// 获取用户资料
val profile = sdk.user.getUserProfile("username")
println("昵称:${profile.displayName}")
// 获取热门推荐
val popular = sdk.search.getPopular()
println("热门用户:${popular.users.size}")| 模块 | 描述 | 详细文档 |
|---|---|---|
| Auth | 认证与授权 | auth.md |
| Base | 基础接口 | base.md |
| User | 用户资料 | user.md |
| Search | 搜索发现 | search.md |
| Gathering | 聚会活动 | gathering.md |
| School | 学校角色 | school.md |
try {
val profile = sdk.user.getUserProfile("username")
} catch (e: TokenExpiredException) {
// 令牌过期,SDK 会自动刷新
} catch (e: AuthenticationException) {
println("认证失败:${e.message}")
} catch (e: NotFoundException) {
println("资源不存在")
} catch (e: ApiException) {
println("API 错误:${e.statusCode}")
}| 平台 | 要求 | 构建命令 |
|---|---|---|
| JVM | Java 17+ | ./gradlew jvmJar |
| JS | Node.js 16+ | ./gradlew jsJar |
| Native | iOS/macOS/Linux/Windows | ./gradlew compileKotlin<Platform> |
val config = SdkConfig(
apiKey = "your-api-key",
baseUrl = "https://open-global.vdsentnet.com",
requestTimeout = 60000,
logLevel = LogLevel.DEBUG,
enableRetry = true,
maxRetries = 3
)
val sdk = FursuitTvSdk(config)欢迎提交 Issue 和 Pull Request!
MIT License - 查看 LICENSE 文件。
感谢所有为这个项目做出贡献的开发者们!
注意: 本 SDK 仅供学习和研究使用。请确保遵守 Fursuit.TV 的使用条款和服务协议。