我正在尝试使用图形/ getSchedule api来检查会议冲突。但是,我不太了解请求输入字段“ availabilityViewInterval”的功能和用法。
我的基本要求是传递开始和结束日期时间,并查看资源是否可用(忙/闲)。
虽然我可以在/ getSchedule Api中获得该信息,但是不确定请求和响应中的某些字段。
“ availabilityViewInterval”:这是一个请求字段,在文档中被声明为可选,但是在使用图形客户端时,我需要为此传递值。它接受从5到1440的int值,但不确定它是做什么的,我应该传递什么值?
“ availabilityView”:这是一个响应字段,返回一个字符串值。但我无法理解。这个值是什么?如何计算?它的意义是什么?如何利用它?
请求:
ICalendarGetScheduleCollectionPage response = graphClient.users("usrEmailAddress").calendars(calendar.id)
.getSchedule(schedulesList,endTime,startTime,availabilityViewInterval)
.buildRequest()
.post();
以下是我的示例响应(两次请求中的AvailabilityViewInterval值均为5,但响应的AvailabilityView不同):
**"availabilityView": "22"**,
"scheduleItems": [
{
"isPrivate": false,
"status": "busy",
"subject": "Test Meeting again",
"location": "",
"start": {
"dateTime": "2020-06-12T10:58:45.0000000",
"timeZone": "UTC"
},
"end": {
"dateTime": "2020-06-12T11:08:45.0000000",
"timeZone": "UTC"
}
}
],
"workingHours": {
"daysOfWeek": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"startTime": "08:00:00.0000000",
"endTime": "17:00:00.0000000",
"timeZone": {
"name": "India Standard Time"
}
回应2:
**"availabilityView": "00"**,
"scheduleItems": [],
"workingHours": {
"daysOfWeek": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"startTime": "08:00:00.0000000",
"endTime": "17:00:00.0000000",
"timeZone": {
"name": "India Standard Time"
}
回应3:
**"availabilityView": "220000000000"**,
"scheduleItems": [
{
"isPrivate": false,
"status": "busy",
"subject": "Test Meeting again",
"location": "",
"start": {
"dateTime": "2020-06-12T10:58:45.0000000",
"timeZone": "UTC"
},
"end": {
"dateTime": "2020-06-12T11:08:45.0000000",
"timeZone": "UTC"
}
}
],
"workingHours": {
"daysOfWeek": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"startTime": "08:00:00.0000000",
"endTime": "17:00:00.0000000",
"timeZone": {
"name": "India Standard Time"
}
注意:所有请求的开始时间和结束时间都不同,但是在所有情况下AvailabilityViewInterval字段均为5。
我指的是以下Microsoft文档:
https://docs.microsoft.com/en-us/graph/api/calendar-getschedule?view=graph-rest-1.0&tabs=java
请帮助我了解请求中“ availabilityViewInterval”的重要性和用法,以及响应中“ availabilityView”的用法。
另外,状态值将仅是“忙/闲”,还是可以具有其他任何值?
提前致谢
最佳答案
文档说:
表示响应中AvailabilityView中的时隙持续时间。默认值为30分钟,最小为5分钟,最大为1440。可选。
这表示availabilityView
中的时隙大小。看一个例子可能会有所帮助。
这是来自文档的示例请求:
{
"schedules": ["[email protected]", "[email protected]"],
"startTime": {
"dateTime": "2019-03-15T09:00:00",
"timeZone": "Pacific Standard Time"
},
"endTime": {
"dateTime": "2019-03-15T18:00:00",
"timeZone": "Pacific Standard Time"
},
"availabilityViewInterval": 60
}
将
availabilityViewInterval
设置为60,这意味着返回的availabilityView
中的每个数字代表60分钟的时间。样本响应显示了Megan的值200220010
。 0 =空闲,1 =暂定,2 =忙碌时,我们可以将其解码为:9AM-10AM忙
10AM-11AM免费
11AM-12PM免费
12PM-1PM忙
1PM-2PM忙
2PM-3PM免费
3PM-4PM免费
暂定4PM-5PM
5PM-6PM免费
如果您在
availabilityViewInterval
设置为30的情况下执行了相同的请求,则会返回availabilityView
值220000222200001100
,每个数字代表30分钟的时间。