This commit is contained in:
Leo
2026-01-15 20:48:39 +08:00
parent 76500642eb
commit 2b74f77419
3 changed files with 32 additions and 22 deletions

View File

@@ -98,9 +98,9 @@
1. 登录WPS365开放平台
2. 进入"开发配置" > "权限管理"
3. 查看已申请的权限列表,**注意权限的格式**
- 可能是 `file.read`(点分隔)
- 可能`file:read`(冒号分隔
- 可能是其他格式
- 必须以 `kso.` 开头,如:`kso.file.read``kso.file.readwrite`
- `file.read``ksheet.read`(这些格式不存在
- 根据官方文档https://open.wps.cn/documents/app-integration-dev/wps365/server/
#### 5.2 检查scope分隔符
@@ -108,9 +108,9 @@
| 分隔符 | 示例 | 说明 |
|--------|------|------|
| **逗号(正确)** | `kso.doclib.readwrite,ksheet.read` | ✅ WPS365官方要求 |
| **空格(错误)** | `kso.doclib.readwrite ksheet.read` | ❌ 会导致invalid_scope |
| **逗号+空格** | `kso.doclib.readwrite, ksheet.read` | ⚠️ 可能支持,但不推荐 |
| **逗号(正确)** | `kso.file.readwrite,kso.doclib.readwrite` | ✅ WPS365官方要求 |
| **空格(错误)** | `kso.file.readwrite kso.doclib.readwrite` | ❌ 会导致invalid_scope |
| **逗号+空格** | `kso.file.readwrite, kso.doclib.readwrite` | ⚠️ 可能支持,但不推荐 |
**重要**WPS365官方文档明确要求使用英文逗号 `,` 分隔,不能使用空格。
@@ -122,7 +122,8 @@
wps365:
# 根据WPS365平台后台"权限管理"中显示的实际权限名称配置
# 使用英文逗号分隔WPS365官方要求
scope: kso.doclib.readwrite
# 权限名称必须以 kso. 开头
scope: kso.file.readwrite
```
多个权限示例:
@@ -130,7 +131,8 @@ wps365:
```yaml
wps365:
# 多个权限用英文逗号分隔,不能有空格
scope: kso.doclib.readwrite,ksheet.read
# 权限名称必须以 kso. 开头
scope: kso.file.read,kso.file.readwrite
```
#### 5.4 确认权限已申请且名称正确

View File

@@ -28,20 +28,24 @@ wps365:
# 刷新Token地址
refresh-token-url: https://openapi.wps.cn/oauth2/token
# OAuth授权请求的scope权限可选
# 如果不配置默认使用kso.doclib.readwrite档库读写权限)
# 如果不配置默认使用kso.file.readwrite读写权限,支持在线表格操作
#
# ⚠️ 重要如果报错invalid_scope必须按以下步骤操作
# 1. 登录WPS365开放平台https://open.wps.cn/
# 2. 进入"开发配置" > "权限管理"
# 3. 查看已申请权限的准确名称(注意大小写、分隔符、命名空间等
# 3. 查看已申请权限的准确名称(必须以 kso. 开头
# 4. 在下方配置scope使用英文逗号分隔WPS365官方要求
#
# 根据WPS365官方文档
# 根据WPS365官方文档https://open.wps.cn/documents/app-integration-dev/wps365/server/
# - 必须使用英文逗号分隔(不是空格)
# - 权限名称必须与后台显示的完全一致
# - 常见权限名称可能是kso.doclib.readwrite, kso.doclib.read 等
# - 权限名称必须以 kso. 开头格式如kso.file.read, kso.file.readwrite
# - 常见权限名称
# * kso.file.read (文件读取)
# * kso.file.readwrite (文件读写,支持在线表格操作)
# * kso.doclib.readwrite (文档库读写)
# * kso.wiki.readwrite (知识库读写)
#
# 示例配置(根据平台后台实际显示的权限名称修改):
# scope: kso.file.readwrite
# scope: kso.file.read,kso.file.readwrite
# scope: kso.doclib.readwrite
# scope: kso.doclib.readwrite,ksheet.read
# scope: kso.doclib.read

View File

@@ -94,22 +94,26 @@ public class WPS365OAuthServiceImpl implements IWPS365OAuthService {
// scope参数必需根据WPS365官方文档
// 优先使用配置文件中指定的scope如果没有配置则使用默认值
// 重要WPS365官方文档明确要求使用英文逗号分隔且权限名称必须与后台注册的完全一致
// 根据官方文档https://open.wps.cn/documents/app-integration-dev/wps365/server/
// 权限名称格式为kso.xxx.read 或 kso.xxx.readwrite不是 file.read
String scope = wps365Config.getScope();
if (scope == null || scope.trim().isEmpty()) {
// 默认scope根据WPS365官方文档
// 1. 必须使用英文逗号分隔(不是空格)
// 2. 权限名称必须与WPS365平台后台"权限管理"中显示的完全一致
// 3. 常见权限名称可能是
// 2. 权限名称必须以 kso. 开头格式如kso.file.read, kso.file.readwrite
// 3. 常见权限名称(根据官方文档)
// - kso.file.read (文件读取)
// - kso.file.readwrite (文件读写)
// - kso.doclib.readwrite (文档库读写)
// - kso.doclib.read (文档库读)
// - 或其他在平台后台显示的实际权限名称
// - kso.wiki.readwrite (知识库读)
// - 对于在线表格AirSheet/KSheet可能需要 kso.file.readwrite
//
// 如果报错invalid_scope
// 1. 登录WPS365开放平台
// 1. 登录WPS365开放平台https://open.wps.cn/
// 2. 进入"开发配置" > "权限管理"
// 3. 查看已申请权限的准确名称(注意大小写、分隔符等
// 3. 查看已申请权限的准确名称(必须以 kso. 开头
// 4. 在application.yml中配置scope参数使用逗号分隔
scope = "kso.doclib.readwrite"; // 默认使用文档库读写权限
scope = "kso.file.readwrite"; // 默认使用文读写权限(支持在线表格操作)
}
scope = scope.trim();