FursuitTvSdk

Fursuit.TV SDK 主客户端

提供多种初始化方式,适用于不同的使用场景:

认证方式说明

  • Client 认证:适用于应用级 API,使用 X-Api-Key 或 Authorization Bearer

  • 通过签名交换接口(POST /api/auth/token)获取 accessToken 和 apiKey

  • 认证头:X-Api-Key: 或 Authorization: Bearer

  • OAuth 认证:适用于用户授权场景,仅可用于 UserInfo 接口

  • 通过 OAuth 授权流程获取 access_token

  • 认证头:X-OAuth-Access-Token: + Authorization: Bearer (双 header)

官方文档参考:

  • vds-docs/基础接口/签名交换.md - 签名交换流程

  • vds-docs/认证方式与服务器端点.md - 认证方式说明

  • vds-docs/VDS 账户/VDS 账户快速接入(OAuth).md - OAuth 流程

// ========== 方式 1: 使用 apiKey(Client 认证)==========
// 认证头:X-Api-Key
// 适用场景:应用级 API
// 说明:apiKey 通过签名交换接口获取(使用 appId + appSecret)
val sdk1 = FursuitTvSdk(apiKey = "your-api-key")

// ========== 方式 2: 使用 clientId + clientSecret(推荐,Client 认证)==========
// 认证头:Authorization: Bearer <accessToken>
// 适用场景:应用级 API
// 说明:通过签名交换获取 accessToken
// 官方文档:vds-docs/基础接口/签名交换.md
val sdk2 = FursuitTvSdk(
clientId = "vap_xxxxxxxxxxxxxxxx",
clientSecret = "your-client-secret"
)
runBlocking {
sdk2.auth.exchangeToken(clientId, clientSecret)
}

// ========== 方式 3: 使用 accessToken(Client 认证)==========
// 认证头:Authorization: Bearer <accessToken>
// 适用场景:应用级 API
val sdk3 = FursuitTvSdk(accessToken = "your-access-token")

// ========== 方式 4: 使用 OAuth 认证(OAuth 2.0 授权码模式)==========
// 认证头:X-OAuth-Access-Token: <oauth-token> + Authorization: Bearer <apiKey>
// 适用场景:用户授权场景(仅可用于 UserInfo 接口)
// 前置条件:必须先调用 exchangeToken() 获取 Client accessToken
// 警告:OAuth token 和 Client token 不通用,不能混用
// 官方文档:vds-docs/VDS 账户/VDS 账户快速接入(OAuth).md
runBlocking {
// 第一步:先通过签名交换获取 Client accessToken
val clientSdk = FursuitTvSdk(clientId = "vap_xxxxx", clientSecret = "secret")
clientSdk.auth.exchangeToken("vap_xxxxx", "secret")

// 第二步:使用 OAuth 获取用户授权
val config = OAuthConfig(callbackHost = "localhost", callbackPort = 8080)
val oauthSdk = FursuitTvSdk.initWithOAuth("vap_xxxxx", config)

// 第三步:调用 UserInfo 接口
val userInfo = oauthSdk.user.getUserProfile("username")
}

// ========== 调用 API ==========
val userProfile = sdk.user.getUserProfile("username")
val popularUsers = sdk.search.getPopular()

// ========== 关闭 SDK ==========
sdk.close()

See also

签名交换

(基础接口/签名交换.md)

认证方式与服务器端点

(认证方式与服务器端点.md)

VDS 账户/VDS 账户快速接入(OAuth).md

Constructors

Link copied to clipboard
constructor(apiKey: String)

使用 API 密钥初始化 SDK(Java 友好) 使用默认配置创建 SDK 实例

constructor(apiKey: String, baseUrl: String = "https://open-global.vdsentnet.com", tokenInfo: TokenInfo? = null)

使用 API 密钥和自定义基础 URL 初始化 SDK

constructor(accessToken: String, baseUrl: String = "https://open-global.vdsentnet.com")

使用访问令牌初始化 SDK 适用于已有访问令牌的用户(例如从 OAuth 流程或其他认证方式获得)

constructor(clientId: String, clientSecret: String, baseUrl: String = "https://open-global.vdsentnet.com")

使用 clientId 和 clientSecret 初始化 SDK(推荐方式) 适用于新用户,通过签名交换获取 accessToken

constructor(config: SdkConfig, tokenInfo: TokenInfo? = null)

使用自定义配置初始化 SDK 允许完全自定义 SDK 的各种参数

Types

Link copied to clipboard
object Companion

伴生对象,提供静态工厂方法

Properties

Link copied to clipboard

认证管理器 提供令牌交换、刷新、OAuth 授权等认证相关功能

Link copied to clipboard

基础接口 API 提供 HelloWorld 验证、健康检查、版本检查、主题包等基础功能

Link copied to clipboard

聚会相关 API 提供聚会列表、统计、详情、报名等聚会相关功能

Link copied to clipboard

学校和角色 API 提供学校信息、角色管理等学校和角色相关功能

Link copied to clipboard

搜索和发现 API 提供热门推荐、随机推荐、搜索、物种查询等发现功能

Link copied to clipboard

用户相关 API 提供用户资料、关系、访客、徽章、商店等用户相关功能

Functions

Link copied to clipboard
fun close()

关闭 SDK 客户端 释放 HTTP 客户端和认证管理器占用的资源 在不再需要 SDK 时应调用此方法

Link copied to clipboard

获取当前配置