-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Open
Description
问题描述
管理后台对 Gemini OAuth 账户执行连通性测试时报错:
geminiAccountService.ensureValidToken is not a function
根因
PR #859 (feat/optimize) 在路由层调用了 ensureValidToken,但从未在对应的 service 中实现该方法:
geminiAccounts.js:524调用geminiAccountService.ensureValidToken()— 未实现droidAccounts.js:619调用droidAccountService.ensureValidToken()— 未实现
额外问题
即使补齐方法,Gemini 测试仍会失败,因为测试路由使用了错误的 API 端点和请求格式:
| 项目 | 修复前(错误) | 修复后(正确) |
|---|---|---|
| 端点 | generativelanguage.googleapis.com/v1beta |
cloudcode-pa.googleapis.com/v1internal |
| 认证 | Bearer token + 需要 generative-language scope |
Bearer token + cloud-platform scope ✅ |
| 请求体 | { contents, generationConfig } 顶层 |
{ model, project, request: { contents, generationConfig } } |
| Headers | 仅 Content-Type + Authorization | 额外需要 User-Agent、X-Goog-Api-Client、Client-Metadata、Accept |
影响范围
- 管理后台 Gemini 账户「测试」按钮完全不可用
- 管理后台 Droid 账户「测试」按钮同样受影响(缺少方法,但端点和请求格式无需修改)
- 不影响正常的 API 转发功能
修复方案(3 个文件)
src/services/account/geminiAccountService.js— 新增ensureValidToken(),先检查 token 有效性(快速路径),过期时再刷新src/services/account/droidAccountService.js— 新增ensureValidToken(),封装已有的getValidAccessToken()src/routes/admin/geminiAccounts.js— 修正测试路由:切换到cloudcode-pa端点、request包装体结构、补齐必要 headers、兼容嵌套响应解析
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels