1
This commit is contained in:
@@ -1,5 +1,10 @@
|
|||||||
# WPS365 获取文件列表 - 测试说明
|
# WPS365 获取文件列表 - 测试说明
|
||||||
|
|
||||||
|
## 关于接口与文档
|
||||||
|
|
||||||
|
- **用户信息接口**:官方文档(open.wps.cn 用户授权流程)只写“通过 access_token 获取用户信息”,**未给出具体 URL**。项目中曾用 `/api/v1/user/info`,该地址会 404。已改为依次尝试 `v7/user`、`v7/userinfo`、`userinfo`、`user/info`;若均不可用则**降级返回**(不报 500,返回 token 中的 user_id 与占位信息)。若需完整用户信息,请以 [WPS 开放平台文档](https://open.wps.cn/documents) 为准确认正确路径后再改。
|
||||||
|
- 其他 WPS 接口(文件列表、KSheet 等)请以 open.wps.cn 对应文档为准,发现路径不一致时以文档为准修改。
|
||||||
|
|
||||||
## 接口说明
|
## 接口说明
|
||||||
|
|
||||||
- **后端接口**:`GET /jarvis/wps365/files`
|
- **后端接口**:`GET /jarvis/wps365/files`
|
||||||
|
|||||||
@@ -210,6 +210,13 @@ public class WPS365Controller extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
JSONObject userInfo = wps365ApiService.getUserInfo(tokenInfo.getAccessToken());
|
JSONObject userInfo = wps365ApiService.getUserInfo(tokenInfo.getAccessToken());
|
||||||
|
if (userInfo == null) {
|
||||||
|
// WPS 未提供可用的“当前用户信息”接口或路径变更,降级返回 token 中的 user_id,避免 500
|
||||||
|
userInfo = new JSONObject();
|
||||||
|
userInfo.put("user_id", tokenInfo.getUserId());
|
||||||
|
userInfo.put("name", "已授权用户");
|
||||||
|
userInfo.put("email", "-");
|
||||||
|
}
|
||||||
return AjaxResult.success("获取用户信息成功", userInfo);
|
return AjaxResult.success("获取用户信息成功", userInfo);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("获取用户信息失败", e);
|
log.error("获取用户信息失败", e);
|
||||||
|
|||||||
@@ -28,20 +28,28 @@ public class WPS365ApiServiceImpl implements IWPS365ApiService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JSONObject getUserInfo(String accessToken) {
|
public JSONObject getUserInfo(String accessToken) {
|
||||||
|
// 官方文档(open.wps.cn 用户授权流程)仅写“通过 access_token 获取用户信息”,未给出具体路径;
|
||||||
|
// /api/v1/user/info 返回 404,以下按常见惯例尝试,若均不可用则返回 null,由 Controller 降级返回
|
||||||
|
String[] urlsToTry = {
|
||||||
|
"https://openapi.wps.cn/v7/user",
|
||||||
|
"https://openapi.wps.cn/v7/userinfo",
|
||||||
|
wps365Config.getApiBaseUrl() + "/userinfo",
|
||||||
|
wps365Config.getApiBaseUrl() + "/user/info"
|
||||||
|
};
|
||||||
|
for (String url : urlsToTry) {
|
||||||
try {
|
try {
|
||||||
// WPS365用户信息API: GET /api/v1/user/info
|
log.debug("尝试用户信息API: {}", url);
|
||||||
// 注意:如果此API不存在或需要不同的路径,请查看WPS365官方文档
|
|
||||||
String url = wps365Config.getApiBaseUrl() + "/user/info";
|
|
||||||
log.debug("调用用户信息API: {}", url);
|
|
||||||
JSONObject result = WPS365ApiUtil.httpRequest("GET", url, accessToken, null);
|
JSONObject result = WPS365ApiUtil.httpRequest("GET", url, accessToken, null);
|
||||||
log.debug("用户信息API响应: {}", result);
|
if (result != null) {
|
||||||
|
log.debug("用户信息API成功 - url: {}", url);
|
||||||
return result;
|
return result;
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("获取用户信息失败 - url: {}, error: {}",
|
|
||||||
wps365Config.getApiBaseUrl() + "/user/info", e.getMessage(), e);
|
|
||||||
// 不抛出异常,让调用方处理(使用降级方案)
|
|
||||||
throw new RuntimeException("获取用户信息失败: " + e.getMessage(), e);
|
|
||||||
}
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.debug("用户信息API失败 - url: {}, error: {}", url, e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
log.warn("所有用户信息接口均不可用,请以 open.wps.cn 文档为准确认正确路径");
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user