1
This commit is contained in:
@@ -223,19 +223,34 @@ public class TencentDocServiceImpl implements ITencentDocService {
|
||||
@Override
|
||||
public JSONObject readSheetData(String accessToken, String fileId, String sheetId, String range) {
|
||||
try {
|
||||
log.info("Service层 - 开始读取表格数据: fileId={}, sheetId={}, range={}", fileId, sheetId, range);
|
||||
|
||||
// 获取用户信息(包含Open-Id)
|
||||
// 官方响应格式:{ "ret": 0, "msg": "Succeed", "data": { "openID": "xxx", ... } }
|
||||
log.debug("正在获取用户信息...");
|
||||
JSONObject userInfo = TencentDocApiUtil.getUserInfo(accessToken);
|
||||
JSONObject data = userInfo.getJSONObject("data");
|
||||
if (data == null) {
|
||||
throw new RuntimeException("无法获取用户数据,请检查Access Token是否有效");
|
||||
}
|
||||
String openId = data.getString("openID"); // 注意:官方返回的字段名是 openID(大写ID)
|
||||
if (openId == null || openId.isEmpty()) {
|
||||
throw new RuntimeException("无法获取Open-Id,请检查Access Token是否有效");
|
||||
log.debug("用户信息响应: {}", userInfo != null ? userInfo.toJSONString() : "null");
|
||||
|
||||
if (userInfo == null) {
|
||||
throw new RuntimeException("getUserInfo 返回 null,Access Token 可能无效");
|
||||
}
|
||||
|
||||
return TencentDocApiUtil.readSheetData(
|
||||
JSONObject data = userInfo.getJSONObject("data");
|
||||
if (data == null) {
|
||||
log.error("用户信息响应中没有 data 字段,完整响应: {}", userInfo.toJSONString());
|
||||
throw new RuntimeException("无法获取用户数据,请检查Access Token是否有效。响应: " + userInfo.toJSONString());
|
||||
}
|
||||
|
||||
String openId = data.getString("openID"); // 注意:官方返回的字段名是 openID(大写ID)
|
||||
if (openId == null || openId.isEmpty()) {
|
||||
log.error("data 对象中没有 openID 字段,data内容: {}", data.toJSONString());
|
||||
throw new RuntimeException("无法获取Open-Id,请检查Access Token是否有效。data: " + data.toJSONString());
|
||||
}
|
||||
|
||||
log.info("成功获取 Open ID: {}", openId);
|
||||
log.info("准备调用API - appId: {}, apiBaseUrl: {}", tencentDocConfig.getAppId(), tencentDocConfig.getApiBaseUrl());
|
||||
|
||||
JSONObject result = TencentDocApiUtil.readSheetData(
|
||||
accessToken,
|
||||
tencentDocConfig.getAppId(),
|
||||
openId,
|
||||
@@ -244,8 +259,12 @@ public class TencentDocServiceImpl implements ITencentDocService {
|
||||
range,
|
||||
tencentDocConfig.getApiBaseUrl()
|
||||
);
|
||||
|
||||
log.info("API调用成功,返回结果: {}", result != null ? result.toJSONString() : "null");
|
||||
return result;
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("读取表格数据失败", e);
|
||||
log.error("读取表格数据失败 - fileId: {}, sheetId: {}, range: {}", fileId, sheetId, range, e);
|
||||
throw new RuntimeException("读取表格数据失败: " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user