获取Schema信息的接口代码
public String getSchema(String fileId) throws Exception {
String token = getToken();
String url = WpsConstant.DBSHEET_URL+"/"+fileId+WpsConstant.SCHEMA_URL;
String date = DateUtil.getRFC1123Date();
byte[] requestBody = "{\"key\": \"value\"}".getBytes(StandardCharsets.UTF_8);
String sign = getSign(WpsConstant.REQUEST_GET,url,WpsConstant.CONTENT_TYPE,date,requestBody);
Map headerMap = new HashMap<>();
headerMap.put("Content-Type",WpsConstant.CONTENT_TYPE);
headerMap.put("X-Kso-Date",date);
headerMap.put("X-Kso-Authorization",sign);
headerMap.put("Authorization","Bearer "+token);
String result = HttpUtil.sendGetRequest(WpsConstant.BASE_URL+url,headerMap);
return result;
}
多维表格权限配置 <img src="https://solution-community.wps.cn/uploads/post/5rKMdbS9sRw.png" alt="访问多维表格的权限配置"/> kso签名方法
public String getSign(String method,String url,String contentType,String contentDate,byte[] requestBody) throws NoSuchAlgorithmException, InvalidKeyException {
KsoSign kso = new KsoSign(WpsConstant.APP_ID, WpsConstant.APP_KEY);
KsoSign.Out out = kso.kso1Sign(method, url, contentType, contentDate, requestBody);
return out.getAuthorization();
}
调用方法直接结果返回{"code":403000001,"message":"kso: PermissionDenied err: invalid sign: invalid KSO-1 sign"},上周还可以调用成功,本周调用就一直报这个权限错误,是什么原因