Sfoglia il codice sorgente

📝 docs(architecture): update SDK core architecture documentation

- 添加SDK初始化接口修复需求,要求同时接收appId和certificate
- 新增Task 8任务,包含修复SDK初始化接口的详细子任务
- 更新Task 9中SDK测试页面的初始化界面,增加Certificate输入项
- 添加CERTIFICATE修复说明,包括问题分析和具体修复方案
- 更新版本历史,记录v1.9版本的证书支持修复内容
- 调整任务编号,确保文档结构与任务顺序一致
yourname 2 mesi fa
parent
commit
d784940685
1 ha cambiato i file con 63 aggiunte e 7 eliminazioni
  1. 63 7
      docs/stories/1.1.sdk-core-architecture.md

+ 63 - 7
docs/stories/1.1.sdk-core-architecture.md

@@ -23,8 +23,9 @@
 5. 提供完整的TypeScript类型定义
 6. 确保现有stt-demo应用功能不受影响,保持向后兼容
 7. **SDK必须能够进行实际的语音转文字操作**,集成真实Agora SDK功能
-8. **在主应用中新增SDK测试页面**,提供完整的SDK功能演示和测试环境
-9. **通过E2E测试验证SDK集成**,确保SDK在实际应用场景中正常工作
+8. **修复SDK初始化接口**:SDK配置需要同时接收appId和certificate,确保token生成功能正常工作
+9. **在主应用中新增SDK测试页面**,提供完整的SDK功能演示和测试环境
+10. **通过E2E测试验证SDK集成**,确保SDK在实际应用场景中正常工作
 
 ## Tasks / Subtasks
 
@@ -62,10 +63,18 @@
   - [x] **验证SDK能够进行实际的语音转文字操作**(单元测试验证通过)
   - [x] 测试多语言转录和翻译功能
   - [ ] 运行Playwright E2E测试验证回归(主应用暂未集成SDK)
-- [ ] Task 8: **主应用集成SDK测试页面** (AC: 8,9)
+- [ ] Task 8: **修复SDK初始化接口** (AC: 8)
+  - [ ] 更新SttSdkConfig接口,添加certificate必填字段
+  - [ ] 修改SttSdk.initialize方法,接收并存储certificate
+  - [ ] 更新SttManagerAdapter构造函数,接收必填的appId和certificate参数
+  - [ ] 修复\_apiGetAgoraToken方法,使用正确的certificate生成token
+  - [ ] 更新相关类型定义文件
+  - [ ] 编写单元测试验证certificate配置功能
+  - [ ] 添加参数验证,确保appId和certificate不为空
+- [ ] Task 9: **主应用集成SDK测试页面** (AC: 9,10)
   - [ ] 在src/pages/目录下创建sdk-test页面
     - [ ] 创建sdk-test/index.tsx页面组件
-    - [ ] 实现SDK初始化界面:App ID输入、Token配置
+    - [ ] 实现SDK初始化界面:App ID和Certificate输入、Token配置
     - [ ] 添加连接状态显示和连接/断开按钮
     - [ ] 实现转录功能控制:开始/停止转录按钮
     - [ ] 添加实时转录结果显示区域,支持多语言显示
@@ -77,7 +86,7 @@
     - [ ] 更新路由配置,确保/sdk-test路径可访问
   - [ ] 编写Playwright E2E测试验证SDK功能
     - [ ] 创建e2e/sdk-test.spec.ts测试文件
-    - [ ] 测试SDK初始化流程:输入App ID、连接成功
+    - [ ] 测试SDK初始化流程:输入App ID和Certificate、连接成功
     - [ ] 测试转录功能:开始转录、接收转录结果
     - [ ] 测试多语言支持:切换语言、验证转录结果
     - [ ] 测试错误处理:无效配置、连接失败场景
@@ -157,10 +166,11 @@
 // 在sdk-test页面中集成SDK
 import { createSttSdk } from "@stt-demo/stt-sdk-core"
 
-// SDK初始化配置
+// SDK初始化配置(appId和certificate为必填)
 const sdkConfig = {
   appId: "your-app-id",
-  token: "your-token",
+  certificate: "your-certificate", // 必填字段
+  token: "your-token", // 可选字段
 }
 
 // 创建SDK实例
@@ -191,6 +201,51 @@ const routerItems = [
 ]
 ```
 
+### CERTIFICATE修复说明
+
+**问题分析**:
+
+- 当前SDK初始化只接收appId,但token生成需要appCertificate
+- \_apiGetAgoraToken方法中appCertificate字段为空字符串,无法生成有效token
+- 需要更新SDK配置接口以支持certificate参数
+
+**修复方案**:
+
+```typescript
+// 更新SttSdkConfig接口
+export interface SttSdkConfig {
+  appId: string
+  certificate: string  // 新增必填字段
+  token?: string
+  logLevel?: 'debug' | 'info' | 'warn' | 'error'
+}
+
+// 更新SttManagerAdapter构造函数
+constructor(rtmManager?: any, appId: string, certificate: string) {  // 改为必填参数
+  super()
+  this._rtmManager = rtmManager
+  this._appId = appId  // 直接赋值,不再检查
+  this._certificate = certificate  // 直接赋值,不再检查
+}
+
+// 修复_apiGetAgoraToken方法
+private async _apiGetAgoraToken(config: {
+  uid: string | number
+  channel: string
+}): Promise<string | null> {
+  const data = {
+    appId: this._appId,
+    appCertificate: this._certificate,  // 使用正确的certificate
+    channelName: channel,
+    expire: 7200,
+    src: 'web',
+    types: [1, 2],
+    uid: uid.toString(),
+  }
+  // ... 其他代码保持不变
+}
+```
+
 ## Testing
 
 ### 测试策略 [Source: architecture/testing-strategy.md]
@@ -262,6 +317,7 @@ export const testLanguages = ["zh-CN", "en-US", "ja-JP"]
 | 2025-09-25 | 1.6     | **完成真实功能集成**:重新实现管理器适配器类,集成真实Agora SDK功能,修复所有测试 | Claude Code |
 | 2025-09-25 | 1.7     | **更新故事状态**:添加主应用集成SDK测试页面需求,将状态改为进行中                 | Bob (SM)    |
 | 2025-09-25 | 1.8     | **完善实施细节**:根据PO建议细化Task 8任务、添加SDK集成示例和E2E测试场景          | Bob (SM)    |
+| 2025-09-25 | 1.9     | **修复SDK初始化问题**:添加CERTIFICATE支持,修复token生成功能                     | Bob (SM)    |
 
 ## Dev Agent Record