流程简介
前提条件:完成应用创建与配置的流程。 步骤一:获取应用凭证信息,获取应用 Client ID 和 Client Secret。 步骤二:申请接口权限,申请会议相关接口的权限。 步骤三:获取应用访问凭证获取企业内部应用的accessToken,调用接口时,通过accessToken鉴权调用者身份。 步骤四:调用服务端会议相关API。- 调用服务端API-创建视频会议接口,进行创建视频会议,获取视频会议conferenceId。
- 根据视频会议conferenceId,调用服务端API-批量查询视频会议信息接口,获取视频会议信息及参会人员列表。
- 根据视频会议conferenceId,调用服务端API-开启视频会议云录制接口,开启视频会议云录制。
- 调用视频会议conferenceId,调用服务端API-开启视频会议云录制接口,关闭视频会议云录制。
- 根据视频会议conferenceId,调用服务端API-关闭视频会议接口,进行关闭视频会议。
-
查询会议录制信息。
- 根据视频会议conferenceId,调用服务单API-查询会议录制的详情信息接口,实现查询会议录制的录制人、录制开始时间、录制持续时长等信息。
- 根据视频会议conferenceId,调用服务端API-查询会议录制中的视频信息接口,实现查询视频下载地址、视频文件大小和视频时长等信息。
- 根据视频会议conferenceId,调用服务端API-查询会议录制中的文本信息接口,实现查询会议录制的文本内容、文本记录开始时间、文本记录结束时间等信息。
前提条件
完成应用创建与配置的流程。步骤一:获取应用凭证
- 选择目标应用,进入应用详情页,单击基础信息 > 凭证与基础信息。
- 获取应用 Client ID 和 Client Secret。
步骤二:添加接口权限
单击开发配置 > 权限管理,在权限搜索框中分别输入VideoConference.Conference.Write和VideoConference.Conference.Read,并申请权限。
步骤三:获取应用访问凭证accessToken
服务端API差异详情参见旧版API VS 新版API。以下接口均使用服务端API接口,SDK下载详情参见服务端SDK下载。
public void getAccessToken() throws Exception {
Config config = new Config();
config.protocol = "https";
config.regionId = "central";
com.aliyun.dingtalkoauth2_1_0.Client client = new com.aliyun.dingtalkoauth2_1_0.Client(config);
GetAccessTokenRequest accessTokenRequest = new GetAccessTokenRequest()
.setAppKey("din*********hgn")
.setAppSecret("9G_O************mBkhgGIO");
GetAccessTokenResponse accessToken = client.getAccessToken(accessTokenRequest);
System.out.println(JSON.toJSONString(accessToken.getBody()));
}
步骤四:调用服务端会议相关API
-
调用服务端API-创建视频会议接口,进行创建视频会议,获取视频会议conferenceId。
public void videoConferencesCreate() throws Exception { Config config = new Config(); config.protocol = "https"; config.regionId = "central"; com.aliyun.dingtalkconference_1_0.Client client = new com.aliyun.dingtalkconference_1_0.Client(config); CreateVideoConferenceHeaders createVideoConferenceHeaders = new CreateVideoConferenceHeaders(); createVideoConferenceHeaders.xAcsDingtalkAccessToken = "accessToken"; CreateVideoConferenceRequest createVideoConferenceRequest = new CreateVideoConferenceRequest() .setUserId("E9CS6X*******QiEiE") .setConfTitle("202211071001视频会议") .setInviteCaller(true) .setInviteUserIds(java.util.Arrays.asList( "tXguN3*******URAiEiE" )); try { CreateVideoConferenceResponse videoConferenceWithOptions = client.createVideoConferenceWithOptions(createVideoConferenceRequest, createVideoConferenceHeaders, new RuntimeOptions()); System.out.println(JSON.toJSONString(videoConferenceWithOptions.getBody())); } catch (TeaException err) { if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { // err 中含有 code 和 message 属性,可帮助开发定位问题 System.out.println(err.code); System.out.println(err.message); } } catch (Exception _err) { TeaException err = new TeaException(_err.getMessage(), _err); if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { // err 中含有 code 和 message 属性,可帮助开发定位问题 System.out.println(err.code); System.out.println(err.message); } } } - 根据视频会议conferenceId,调用服务端API-批量查询视频会议信息接口,获取视频会议信息及参会人员列表。
说明
目前只支持查询正在进行的视频会议。public void videoConferencesInfo() throws Exception {
Config config = new Config();
config.protocol = "https";
config.regionId = "central";
com.aliyun.dingtalkconference_1_0.Client client = new com.aliyun.dingtalkconference_1_0.Client(config);
QueryConferenceInfoBatchHeaders queryConferenceInfoBatchHeaders = new QueryConferenceInfoBatchHeaders();
queryConferenceInfoBatchHeaders.xAcsDingtalkAccessToken = "accessToken";
QueryConferenceInfoBatchRequest queryConferenceInfoBatchRequest = new QueryConferenceInfoBatchRequest()
.setConferenceIdList(java.util.Arrays.asList(
"636866074147ec014a76e720"
));
try {
QueryConferenceInfoBatchResponse queryConferenceInfoBatchResponse = client.queryConferenceInfoBatchWithOptions(queryConferenceInfoBatchRequest, queryConferenceInfoBatchHeaders, new RuntimeOptions());
System.out.println(JSON.toJSONString(queryConferenceInfoBatchResponse.getBody()));
} catch (TeaException err) {
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
System.out.println(err.message);
System.out.println(err.code);
}
} catch (Exception _err) {
TeaException err = new TeaException(_err.getMessage(), _err);
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err 中含有 code 和 message 属性,可帮助开发定位问题
System.out.println(err.message);
System.out.println(err.code);
}
}
}
-
根据视频会议conferenceId,调用服务端API-开启视频会议云录制接口,开启视频会议云录制。
public void cloudRecordsStart() throws Exception { Config config = new Config(); config.protocol = "https"; config.regionId = "central"; com.aliyun.dingtalkconference_1_0.Client client = new com.aliyun.dingtalkconference_1_0.Client(config); StartCloudRecordHeaders startCloudRecordHeaders = new StartCloudRecordHeaders(); startCloudRecordHeaders.xAcsDingtalkAccessToken = "accessToken"; StartCloudRecordRequest startCloudRecordRequest = new StartCloudRecordRequest() .setUnionId("E9CS6X*******QiEiE") .setSmallWindowPosition("relative_right") .setMode("speech"); try { StartCloudRecordResponse startCloudRecordResponse = client.startCloudRecordWithOptions("636866074147ec014a76e720", startCloudRecordRequest, startCloudRecordHeaders, new RuntimeOptions()); System.out.println(JSON.toJSONString(startCloudRecordResponse.getBody())); } catch (TeaException err) { if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { // err 中含有 code 和 message 属性,可帮助开发定位问题 System.out.println(err.message); System.out.println(err.code); } } catch (Exception _err) { TeaException err = new TeaException(_err.getMessage(), _err); if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { // err 中含有 code 和 message 属性,可帮助开发定位问题 System.out.println(err.message); System.out.println(err.code); } } } -
调用视频会议conferenceId,调用服务端API-停止视频会议云录制接口,关闭视频会议云录制。
public void cloudRecordsStop() throws Exception { Config config = new Config(); config.protocol = "https"; config.regionId = "central"; com.aliyun.dingtalkconference_1_0.Client client = new com.aliyun.dingtalkconference_1_0.Client(config); StopCloudRecordHeaders stopCloudRecordHeaders = new StopCloudRecordHeaders(); stopCloudRecordHeaders.xAcsDingtalkAccessToken = "accessToken"; StopCloudRecordRequest stopCloudRecordRequest = new StopCloudRecordRequest() .setUnionId("E9CS6X*******QiEiE"); try { StopCloudRecordResponse stopCloudRecordResponse = client.stopCloudRecordWithOptions("636866074147ec014a76e720", stopCloudRecordRequest, stopCloudRecordHeaders, new RuntimeOptions()); System.out.println(JSON.toJSONString(stopCloudRecordResponse.getBody())); } catch (TeaException err) { if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { // err 中含有 code 和 message 属性,可帮助开发定位问题 System.out.println(err.message); System.out.println(err.code); } } catch (Exception _err) { TeaException err = new TeaException(_err.getMessage(), _err); if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { // err 中含有 code 和 message 属性,可帮助开发定位问题 System.out.println(err.message); System.out.println(err.code); } } } -
根据视频会议conferenceId,调用服务端API-关闭视频会议接口,进行关闭视频会议。
public void videoConferencesClose() throws Exception { Config config = new Config(); config.protocol = "https"; config.regionId = "central"; com.aliyun.dingtalkconference_1_0.Client client = new com.aliyun.dingtalkconference_1_0.Client(config); CloseVideoConferenceHeaders closeVideoConferenceHeaders = new CloseVideoConferenceHeaders(); closeVideoConferenceHeaders.xAcsDingtalkAccessToken = "accessToken"; CloseVideoConferenceRequest closeVideoConferenceRequest = new CloseVideoConferenceRequest() .setUnionId("E9CS6X*******QiEiE"); try { CloseVideoConferenceResponse closeVideoConferenceResponse = client.closeVideoConferenceWithOptions("636866074147ec014a76e720", closeVideoConferenceRequest, closeVideoConferenceHeaders, new RuntimeOptions()); System.out.println(JSON.toJSONString(closeVideoConferenceResponse.getBody())); } catch (TeaException err) { if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { // err 中含有 code 和 message 属性,可帮助开发定位问题 System.out.println(err.message); System.out.println(err.code); } } catch (Exception _err) { TeaException err = new TeaException(_err.getMessage(), _err); if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { // err 中含有 code 和 message 属性,可帮助开发定位问题 System.out.println(err.message); System.out.println(err.code); } } } -
查询会议录制信息。
-
根据视频会议conferenceId,调用服务单API-查询会议录制的详情信息接口,实现查询会议录制的录制人、录制开始时间、录制持续时长等信息。
public void VideoDetailedInfos() throws Exception { Config config = new Config(); config.protocol = "https"; config.regionId = "central"; com.aliyun.dingtalkconference_1_0.Client client = new com.aliyun.dingtalkconference_1_0.Client(config); QueryCloudRecordVideoHeaders queryCloudRecordVideoHeaders = new QueryCloudRecordVideoHeaders(); queryCloudRecordVideoHeaders.xAcsDingtalkAccessToken = "accessToken"; QueryCloudRecordVideoRequest queryCloudRecordVideoRequest = new QueryCloudRecordVideoRequest() .setUnionId("E9CS6X*******QiEiE"); try { QueryCloudRecordVideoResponse queryCloudRecordVideoResponse = client.queryCloudRecordVideoWithOptions("636866074147ec014a76e720", queryCloudRecordVideoRequest, queryCloudRecordVideoHeaders, new RuntimeOptions()); System.out.println(JSON.toJSONString(queryCloudRecordVideoResponse.getBody())); } catch (TeaException err) { if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { // err 中含有 code 和 message 属性,可帮助开发定位问题 System.out.println(err.message); System.out.println(err.code); } } catch (Exception _err) { TeaException err = new TeaException(_err.getMessage(), _err); if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { // err 中含有 code 和 message 属性,可帮助开发定位问题 System.out.println(err.message); System.out.println(err.code); } } } -
根据视频会议conferenceId,调用服务端API-查询会议录制中的视频信息接口,实现查询视频下载地址、视频文件大小和视频时长等信息。
public void videosPlayInfos() throws Exception { Config config = new Config(); config.protocol = "https"; config.regionId = "central"; com.aliyun.dingtalkconference_1_0.Client client = new com.aliyun.dingtalkconference_1_0.Client(config); QueryCloudRecordVideoPlayInfoHeaders queryCloudRecordVideoPlayInfoHeaders = new QueryCloudRecordVideoPlayInfoHeaders(); queryCloudRecordVideoPlayInfoHeaders.xAcsDingtalkAccessToken = "accessToken"; QueryCloudRecordVideoPlayInfoRequest queryCloudRecordVideoPlayInfoRequest = new QueryCloudRecordVideoPlayInfoRequest() .setUnionId("E9CS6X*******QiEiE") .setMediaId("7665cd17********90991fe43bb") .setRegionId("cn-shanghai"); try { QueryCloudRecordVideoPlayInfoResponse queryCloudRecordVideoPlayInfoResponse = client.queryCloudRecordVideoPlayInfoWithOptions("636866074147ec014a76e720", queryCloudRecordVideoPlayInfoRequest, queryCloudRecordVideoPlayInfoHeaders, new RuntimeOptions()); System.out.println(JSON.toJSONString(queryCloudRecordVideoPlayInfoResponse.getBody())); } catch (TeaException err) { if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { // err 中含有 code 和 message 属性,可帮助开发定位问题 System.out.println(err.message); System.out.println(err.code); } } catch (Exception _err) { TeaException err = new TeaException(_err.getMessage(), _err); if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { // err 中含有 code 和 message 属性,可帮助开发定位问题 System.out.println(err.message); System.out.println(err.code); } } } -
根据视频会议conferenceId,调用服务端API-查询会议录制中的文本信息接口,实现查询会议录制的文本内容、文本记录开始时间、文本记录结束时间等信息。
public void videosTextInfos() throws Exception { Config config = new Config(); config.protocol = "https"; config.regionId = "central"; com.aliyun.dingtalkconference_1_0.Client client = new com.aliyun.dingtalkconference_1_0.Client(config); QueryCloudRecordTextHeaders queryCloudRecordTextHeaders = new QueryCloudRecordTextHeaders(); queryCloudRecordTextHeaders.xAcsDingtalkAccessToken = "accessToken"; QueryCloudRecordTextRequest queryCloudRecordTextRequest = new QueryCloudRecordTextRequest() .setUnionId("E9CS6X*******QiEiE") .setStartTime(1000L) .setDirection("0") .setMaxResults(200L); //如果是首次查询,该参数可不传 //.setNextToken(0L); try { QueryCloudRecordTextResponse queryCloudRecordTextResponse = client.queryCloudRecordTextWithOptions("636866074147ec014a76e720", queryCloudRecordTextRequest, queryCloudRecordTextHeaders, new RuntimeOptions()); System.out.println(JSON.toJSONString(queryCloudRecordTextResponse.getBody())); } catch (TeaException err) { if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { // err 中含有 code 和 message 属性,可帮助开发定位问题 System.out.println(err.message); System.out.println(err.code); } } catch (Exception _err) { TeaException err = new TeaException(_err.getMessage(), _err); if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { // err 中含有 code 和 message 属性,可帮助开发定位问题 System.out.println(err.message); System.out.println(err.code); } } }
-
根据视频会议conferenceId,调用服务单API-查询会议录制的详情信息接口,实现查询会议录制的录制人、录制开始时间、录制持续时长等信息。