此版本签名方法功能和安全性不如签名鉴权2.0,推荐使用签名鉴权2.0
小鱼服务会对每个API访问请求进行企业身份、签名验证,即每个请求都需要包括企业身份(enterpriseId)和签名信息(signatrue),签名的生成需要enterpriseId和token,所以在使用API之前,您需要从云视讯管理平台获得enterpriseId和token。得到以上两个必要参数之后,方可通过xylink-cloudsdk进行请求调用。
获取企业id:
获取token:
请下载xylink-cloudsdk最新版本jar包以及源码包,通过源码包中的"readme.txt快速开始",以下为源码包中的例子:
package com.xylink.demo;
import com.xylink.config.SDKConfigMgr;
import com.xylink.log.XyLinkLogType;
import com.xylink.model.MeetingInfo;
import com.xylink.model.SdkMeeting;
import com.xylink.sdk.SdkMethodV1;
import com.xylink.util.Result;
import com.xylink.util.SignUtil;
import org.junit.Test;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
/**
* @Classname CreateMeetingRoom_sign1_0
* @Date 2023/10/31 11:38
* @Created by anan
* @Description 签名1.0代码示例
* 签名1.0需要的参数
* 1、apiHost
* 2、enterpriseId
* 3、token
*
* 初始化方式为:
* SDKConfigMgr.setServerHost(apiHost);
*
* 概要流程为:
* 1、初始化配置SDKConfigMgr.setServerHost(apiHost);
* 2、发起调用SdkMethodV1.xxx
* 3、处理返回结果
*/
public class CreateMeetingRoom_sign1_0 {
@Test
public void testMethod1_0() throws IOException {
//访问的小鱼服务地址,需要根据实际情况进行更换,签名1.0通过切换企业id和token即可支持多企业
String apiHost = "https://sdk.xylink.com";
//您的企业ID
String enterpriseId = "";
//您的token,可以从管理平台进行查询
String token = "";
//如果为小鱼公有云或专有云,可以不配置此项,直接删除下面一行内容即可,因为jar包默认使用用公有云或专有云地址
SDKConfigMgr.setServerHost(apiHost);
//如果需要请求的时候带上额外的header,可以按照下面方式进行处理
// Map<String, String> headersMap = new HashMap<>();
// SDKConfigMgr.addExtrasHeader(headersMap);
//为了安全考虑,我们会将DELETE、PUT替换为POST进行处理,如果您需要此配置请将注释打开
// SDKConfigMgr.setEnableSecurityHttp(true);
//我们支持多种日志输出方式,请根据实际情况进行选择配置
SDKConfigMgr.setXyLinkLogType(XyLinkLogType.Log4j);
//设置签名计算版本,默认是MD5,可以根据实际情况进行修改
SDKConfigMgr.setSignType(SignUtil.SignType.MD5);
//======================================================================
//至此,jar包已经初始化完成,下面将是我们的调用环节, 签名1.0请使用SdkMethodV1,不要使用SdkMethodV2
//此处我们列举了创建会议室和查询会议室接口示例
//1.创建会议室
String url = "/api/rest/external/v1/create_meeting?enterpriseId=" + enterpriseId;
HashMap<String, Object> body = new HashMap<>();
body.put("meetingName", "sdk测试");
Result<SdkMeeting> result1 = SdkMethodV1.sdkPost(url, token, body, SdkMeeting.class);
if (result1.isSuccess()){
System.out.println("result: " + result1);
}else {
System.out.println("result: " + result1);
throw new RuntimeException("faild to Create Meeting Room");
}
//2.查询会议室
String meetingRoomNumber = result1.getData().getMeetingNumber();
String url1 = "/api/rest/external/v1/meetingInfo/"+meetingRoomNumber+"?enterpriseId=" + enterpriseId;
Result<MeetingInfo> result2 = SdkMethodV1.sdkGet(url1, token, MeetingInfo.class);
if (result2.isSuccess()){
System.out.println("result: " + result2);
}else {
System.out.println("result: " + result2);
throw new RuntimeException("faild to get Meeting Room");
}
//下面是调用post的示例,DELETE、PUT调用相应的方法即可
// Map<String,Object> body = new HashMap<String,Object>();
// Result<Map> mapResult = SdkMethodV1.sdkPost("", token, body, Map.class);
}
}