Files
ruoyi-java/doc/WPS365获取文件列表-测试说明.md
2026-02-04 16:34:35 +08:00

66 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# WPS365 获取文件列表 - 测试说明
## 接口说明
- **后端接口**`GET /jarvis/wps365/files`
- **参数**
- `userId`(必填):与授权时保存 Token 使用的用户标识,前端 WPS365 页目前固定为 `default_user`
- `page`(可选,默认 1页码
- `pageSize`(可选,默认 20每页条数
- **鉴权**:需登录系统(请求头带 JWT后端用 `userId` 从 Redis 取 WPS365 的 access_token再请求 WPS 云文档文件列表 API。
## 前置条件
1. **已完成 WPS365 授权**
在系统里至少完成一次 WPS365 授权,且回调成功后 Token 已保存(与 `userId` 对应,一般为 `default_user`)。
2. **已登录系统**
使用已登录账号访问前端或调用接口(需携带有效 JWT
## 测试方式一:前端页面(推荐)
1. 登录若依前端。
2. 打开 **WPS365 在线表格管理** 页面:侧边栏 **文档同步配置****WPS365 在线表格管理**(或直接访问 `/docSync/wps365`)。
3. 若未授权:点击「立即授权」,在新窗口完成 WPS365 授权后关闭,回到本页。
4. 确认顶部为「已授权」绿色提示。
5. 在「文件列表」卡片中点击 **「加载文件」**。
6. 观察:
- 表格中是否出现文件行(文件名、文件 Token、类型等
- 浏览器开发者工具 → 网络:找到 `files` 请求,查看请求 URL 是否为 `/jarvis/wps365/files?userId=default_user&page=1&pageSize=20`,以及响应 body 中是否有文件数据。
**预期**:能拉取到 WPS 云文档中的文件列表;列表中每条会包含 `file_token`,后续读/写单元格需使用该 `file_token`
若提示「用户未授权」:说明当前 `userId`(如 `default_user`)下没有 WPS365 Token需重新走一遍授权并确保回调成功。
若提示「获取文件列表失败」且带 HTTP 状态码或 WPS 错误信息:需看后端日志中请求的 WPS API 地址与返回内容,再对照 [WPS 开放平台-云文档](https://open.wps.cn/documents/app-integration-dev/wps365/server/yundoc/introduce.html) 文档排查。
## 测试方式二curl需 JWT
1. 从浏览器登录后,在开发者工具中复制当前请求的 `Authorization` 头(或从 localStorage 等获取 token 拼成 `Bearer <token>`)。
2. 执行(将 `YOUR_JWT``BASE_URL` 替换为实际值):
```bash
curl -s -X GET "http://localhost:30313/jarvis/wps365/files?userId=default_user&page=1&pageSize=20" \
-H "Authorization: Bearer YOUR_JWT"
```
3. 查看响应:
- `code: 200``data` 中有文件列表(如 `data.files``data.total` 等)则说明获取文件列表能力正常;
- `msg` 为「用户未授权」则需先完成 WPS365 授权;
- 其他错误可根据 `msg` 或后端日志排查。
## 后端实际请求的 WPS API
- **URL**`{apiBaseUrl}/yundoc/files`,例如 `https://openapi.wps.cn/api/v1/yundoc/files`
- **方法**GET
- **Query**`page``page_size`(由后端把 `page``pageSize` 映射过去)
- **鉴权**Header 中带 WPS365 的 `access_token`
若 WPS 侧返回 404 或参数错误,需对照 [WPS 开放平台-云文档 API](https://open.wps.cn/documents/app-integration-dev/wps365/server/yundoc/introduce.html) 确认路径、参数名(如是否需 `drive_id``parent_id` 等)是否与当前实现一致,必要时调整 `WPS365ApiServiceImpl.getFileList` 中的 URL 与参数。
## 成功后的下一步
- 从文件列表结果中取目标文件的 **`file_token`**。
- 读单元格:使用 **KSheet 读接口** `readCells`,参数中 `fileToken` 填该 `file_token`
- 写单元格:使用 **KSheet 写接口** `updateCells`,同样使用该 `file_token`
这样可避免用分享链接里的 ID 直接调接口导致的 404改为用「文件列表」返回的 `file_token` 访问表格。