创建及删除日程
预期效果
创建日程展示

接入流程简介
1.
id
。2.
id
,调用服务端API-修改日程接口,进行日程信息修改。3.
id
,调用服务端API-查询单个日程详情接口,获取日程详情信息。4.
id
,调用服务端API-删除日程接口,删除创建的日程。步骤一:创建企业内部应用
步骤二:获取AppKey和AppSecret

步骤三:添加接口权限

步骤四:获取应用访问凭证accessToken
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("ding*********hgn")
.setAppSecret("9G_O**********xamBkhgGIO");
GetAccessTokenResponse accessToken = client.getAccessToken(accessTokenRequest);
System.out.println(JSON.toJSONString(accessToken.getBody()));
}
步骤五:调用服务端日程相关API
1.
id
。 public void createCalendar() throws Exception {
Config config = new Config();
config.protocol = "https";
config.regionId = "central";
com.aliyun.dingtalkcalendar_1_0.Client client = new com.aliyun.dingtalkcalendar_1_0.Client(config);
CreateEventHeaders createEventHeaders = new CreateEventHeaders();
createEventHeaders.xAcsDingtalkAccessToken = "accessToken";
java.util.Map<String, String> extra = TeaConverter.buildMap(
new TeaPair("noChatNotification", "false"),
new TeaPair("noPushNotification","false")
);
CreateEventRequest.CreateEventRequestOnlineMeetingInfo onlineMeetingInfo = new CreateEventRequest.CreateEventRequestOnlineMeetingInfo()
.setType("dingtalk");
CreateEventRequest.CreateEventRequestReminders reminders0 = new CreateEventRequest.CreateEventRequestReminders()
.setMethod("dingtalk")
.setMinutes(15);
CreateEventRequest.CreateEventRequestLocation location = new CreateEventRequest.CreateEventRequestLocation()
.setDisplayName("********A座9F");
CreateEventRequest.CreateEventRequestAttendees attendees0 = new CreateEventRequest.CreateEventRequestAttendees()
.setId("日程参与人unionId")
.setIsOptional(false);
CreateEventRequest.CreateEventRequestAttendees attendees1 = new CreateEventRequest.CreateEventRequestAttendees()
.setId("日程参与人unionId")
.setIsOptional(false);
CreateEventRequest.CreateEventRequestAttendees attendees2 = new CreateEventRequest.CreateEventRequestAttendees()
.setId("日程参与人unionId")
.setIsOptional(false);
CreateEventRequest.CreateEventRequestRecurrenceRange recurrenceRange = new CreateEventRequest.CreateEventRequestRecurrenceRange()
.setType("numbered")
.setNumberOfOccurrences(2);
CreateEventRequest.CreateEventRequestRecurrencePattern recurrencePattern = new CreateEventRequest.CreateEventRequestRecurrencePattern()
.setType("daily")
.setInterval(1);
CreateEventRequest.CreateEventRequestRecurrence recurrence = new CreateEventRequest.CreateEventRequestRecurrence()
.setPattern(recurrencePattern)
.setRange(recurrenceRange);
CreateEventRequest.CreateEventRequestEnd end = new CreateEventRequest.CreateEventRequestEnd()
.setDate("2022-09-03");
// .setDateTime("2021-09-20T10:15:30+08:00")
// .setTimeZone("Asia/Shanghai");
CreateEventRequest.CreateEventRequestStart start = new CreateEventRequest.CreateEventRequestStart()
.setDate("2022-09-02");
// .setDateTime("2021-09-20T10:15:30+08:00")
// .setTimeZone("Asia/Shanghai");
CreateEventRequest createEventRequest = new CreateEventRequest()
.setSummary("0902创建日程")
.setDescription("这是0902创建的一个日程")
.setStart(start)
.setEnd(end)
.setIsAllDay(true)
.setRecurrence(recurrence)
.setAttendees(java.util.Arrays.asList(
attendees0,
attendees1,
attendees2
))
.setLocation(location)
.setReminders(java.util.Arrays.asList(
reminders0
))
.setOnlineMeetingInfo(onlineMeetingInfo)
.setExtra(extra);
try {
CreateEventResponse eventWithOptions = client.createEventWithOptions("日程组织人unionId", "primary", createEventRequest, createEventHeaders, new RuntimeOptions());
System.out.println(JSON.toJSONString(eventWithOptions.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);
}
}
}
2.
id
,调用服务端API-修改日程接口,进行日程信息修改。public void updateCalendar() throws Exception {
Config config = new Config();
config.protocol = "https";
config.regionId = "central";
com.aliyun.dingtalkcalendar_1_0.Client client = new com.aliyun.dingtalkcalendar_1_0.Client(config);
PatchEventHeaders patchEventHeaders = new PatchEventHeaders();
patchEventHeaders.xAcsDingtalkAccessToken = "accessToken";
PatchEventRequest.PatchEventRequestReminders reminders0 = new PatchEventRequest.PatchEventRequestReminders()
.setMethod("dingtalk")
.setMinutes(15);
java.util.Map<String, String> extra = TeaConverter.buildMap(
new TeaPair("noChatNotification", "false"),
new TeaPair("noPushNotification","false")
);
PatchEventRequest.PatchEventRequestLocation location = new PatchEventRequest.PatchEventRequestLocation()
.setDisplayName("room 1-2-3");
PatchEventRequest.PatchEventRequestAttendees attendees0 = new PatchEventRequest.PatchEventRequestAttendees()
.setId("日程参与人unionId")
.setIsOptional(false);
PatchEventRequest.PatchEventRequestRecurrenceRange recurrenceRange = new PatchEventRequest.PatchEventRequestRecurrenceRange()
.setType("numbered")
.setNumberOfOccurrences(1);
PatchEventRequest.PatchEventRequestRecurrencePattern recurrencePattern = new PatchEventRequest.PatchEventRequestRecurrencePattern()
.setType("daily")
.setInterval(1);
PatchEventRequest.PatchEventRequestRecurrence recurrence = new PatchEventRequest.PatchEventRequestRecurrence()
.setPattern(recurrencePattern)
.setRange(recurrenceRange);
PatchEventRequest.PatchEventRequestEnd end = new PatchEventRequest.PatchEventRequestEnd()
.setDate("2022-09-02");
PatchEventRequest.PatchEventRequestStart start = new PatchEventRequest.PatchEventRequestStart()
.setDate("2022-09-02");
PatchEventRequest patchEventRequest = new PatchEventRequest()
.setSummary("0902修改日程内容")
.setId("日程id")
.setDescription("这是一个0902修改的日程")
.setStart(start)
.setEnd(end)
.setIsAllDay(true)
.setRecurrence(recurrence)
.setAttendees(java.util.Arrays.asList(
attendees0
))
.setLocation(location)
.setExtra(extra)
.setReminders(java.util.Arrays.asList(
reminders0
));
try {
PatchEventResponse patchEventResponse = client.patchEventWithOptions("日程组织者unionId", "primary", "日程id", patchEventRequest, patchEventHeaders, new RuntimeOptions());
System.out.println(JSON.toJSONString(patchEventResponse.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);
}
}
}
3.
id
,调用服务端API-查询单个日程详情接口,获取日程详情信息。 public void calendarInfo() throws Exception {
Config config = new Config();
config.protocol = "https";
config.regionId = "central";
com.aliyun.dingtalkcalendar_1_0.Client client = new com.aliyun.dingtalkcalendar_1_0.Client(config);
GetEventHeaders getEventHeaders = new GetEventHeaders();
getEventHeaders.xAcsDingtalkAccessToken = "accessToken";
GetEventRequest getEventRequest = new GetEventRequest()
.setMaxAttendees(100L);
try {
GetEventResponse eventWithOptions = client.getEventWithOptions("日程组织者unionId", "primary", "日程id", getEventRequest, getEventHeaders, new RuntimeOptions());
System.out.println(JSON.toJSONString(eventWithOptions.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);
}
}
}
4.
id
,调用服务端API-删除日程接口,删除创建的日程。public void deleteCalendar() throws Exception {
Config config = new Config();
config.protocol = "https";
config.regionId = "central";
com.aliyun.dingtalkcalendar_1_0.Client client = new com.aliyun.dingtalkcalendar_1_0.Client(config);
DeleteEventHeaders deleteEventHeaders = new DeleteEventHeaders();
deleteEventHeaders.xAcsDingtalkAccessToken = "accessToken";
try {
client.deleteEventWithOptions("日程组织者unionId", "primary", "日程id", deleteEventHeaders, new RuntimeOptions());
} 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);
}
}
}
修改于 2024-01-12 07:39:36