logo
0
0
Login
docs: 重构README文档,优化项目介绍和使用说明

Bili-API 使用文档

1. 项目概述

Bili-API 是一个用于与 Bilibili 开放平台交互的 Go 语言库,提供了以下核心功能:

  • 用户认证(扫码登录)
  • 客户端配置(appIdappKeyappSecret
  • WebSocket 消息处理(弹幕、礼物、点赞等)
  • 直播相关接口(启动、停止、心跳等)

2. 快速开始

2.1 安装

确保已安装 Go 1.24.6+,然后通过以下命令安装依赖:

go get cnb.cool/xqitw/bili-api

2.2 初始化 API

package main import ( "fmt" "cnb.cool/xqitw/bili-api/api" ) func main() { // 初始化 API 实例 apiInstance := api.NewApi() // 可选:设置 UID apiInstance = api.NewApiWithOptions(api.WithUid(123456)) }

2.3 用户认证

// 生成登录二维码 qrRes := apiInstance.Auth.QrcodeGenerate() if !qrRes.IsSuccess { fmt.Println("生成二维码失败:", qrRes.Message) return } fmt.Println("请扫描以下二维码登录:") fmt.Println(qrRes.Data.Base64Image) // 扫码登录 loginRes := apiInstance.Auth.QrcodeLogin(qrRes.Data.QrcodeKey) if !loginRes.IsSuccess { fmt.Println("登录失败:", loginRes.Message) return } fmt.Println("登录成功!")

2.4 客户端配置

// 从环境变量加载配置 client := apiInstance.Client.SetConfigFromEnv() // 或手动设置配置 client := apiInstance.Client.SetConfig(123456, "your_app_key", "your_app_secret")

2.5 调用开放平台接口

详见测试用例 : api/client_test.go

package api import ( "os" "testing" ) func TestAppStartEnd(t *testing.T) { client := NewApi().Client.SetConfigFromEnv() res := client.AppStart(os.Getenv("BILI_APP_CODE")) if !res.IsSuccess { t.Fatal(res.Message) return } println("游戏启动成功:", res.Data.AnchorInfo.Uname) gameId := res.Data.GameInfo.GameId heartbeat := client.AppBatchHeartbeat([]string{gameId}) if !heartbeat.IsSuccess { t.Fatal(heartbeat.Message) return } println("批量心跳成功:", len(heartbeat.Data.FailedGameIds)) endRes := client.AppEnd(gameId) if !endRes.IsSuccess { t.Fatal(endRes.Message) } println("游戏停止成功:", gameId) }

2.6 WebSocket 消息处理

// 定义消息处理器 handler := &ws.MsgHandler{ DmLiveOpenPlatformDm: func(handler *ws.MsgHandler, data *danmaku.LiveOpenPlatformDm) error { fmt.Println("收到弹幕:", data.Content) return nil }, } // 处理 WebSocket 消息 err := handler.Handler(messageBytes) if err != nil { fmt.Println("处理消息失败:", err) }

3. 核心模块说明

3.1 api 模块

  • Api: 核心入口,管理认证、客户端、直播等功能。
  • Auth: 处理用户认证(扫码登录)。
  • Client: 封装 Bilibili 开放平台接口(如启动、停止、心跳等)。
  • Live: 直播相关功能(待扩展)。
  • Room: 房间相关功能(待扩展)。
  • User: 用户相关功能(待扩展)。

3.2 ws 模块

  • MsgHandler: 处理 WebSocket 消息,支持弹幕、礼物、点赞等消息的分发。

3.3 models 模块

  • 定义了各接口的请求和响应数据结构。

4. 环境变量

以下环境变量可用于配置客户端:

  • BILI_APP_ID: 应用 ID。
  • BILI_APP_KEY: 应用 Key。
  • BILI_APP_SECRET: 应用 Secret。

5. 注意事项

  1. Cookie 持久化:

    • 默认将 Cookie 保存在 ./bili_cookies/ 目录下,文件名为 bili_cookie_{uid}.json
    • 可通过 WithLoadCookiesFuncWithDumpCookiesFunc 自定义加载和保存逻辑。
  2. 安全性:

    • 确保 appKeyappSecret 不被泄露。
    • 使用 HTTPS 协议传输敏感数据。
  3. 错误处理:

    • 所有接口返回 BliBilRes 结构体,包含 IsSuccessCodeMessage 字段,便于错误处理。

6. 示例项目

具体使用参考测试用例,了解各接口的具体用法。

7. 后续计划

  • 增加更多直播相关接口。
  • 优化 WebSocket 消息处理性能。
  • 补充详细的单元测试和集成测试。