Java 了解Microsoft graph/getSchedule Api功能

Java 了解Microsoft graph/getSchedule Api功能,java,microsoft-graph-api,microsoft-graph-sdks,microsoft-graph-teams,microsoft-graph-calendar,Java,Microsoft Graph Api,Microsoft Graph Sdks,Microsoft Graph Teams,Microsoft Graph Calendar,我正在尝试使用graph/GetScheduleAPI检查会议冲突。然而,我不太了解请求输入字段“availabilityViewInterval”的功能和用法 我的基本要求是传递开始和结束日期时间,并查看资源是否可用(空闲/忙碌)。 虽然我能够在/getScheduleAPI中获得该消息,但不确定请求和响应中的某些字段是否正确 “availabilityViewInterval”:这是一个请求字段,在文档中声明为可选字段,但在使用graph client时,我需要为此传递值它接受从5到1440

我正在尝试使用graph/GetScheduleAPI检查会议冲突。然而,我不太了解请求输入字段“availabilityViewInterval”的功能和用法

我的基本要求是传递开始和结束日期时间,并查看资源是否可用(空闲/忙碌)。 虽然我能够在/getScheduleAPI中获得该消息,但不确定请求和响应中的某些字段是否正确

  • “availabilityViewInterval”:这是一个请求字段,在文档中声明为可选字段,但在使用graph client时,我需要为此传递值它接受从5到1440的int值,但不确定它的作用以及应该传递的值是多少?

  • “availabilityView”:这是一个响应字段,返回字符串值但我无法理解它。这个值是什么?它是如何计算的?它的意义是什么?如何利用它?

  • 请求:

    ICalendarGetScheduleCollectionPage response = graphClient.users("usrEmailAddress").calendars(calendar.id)
                    .getSchedule(schedulesList,endTime,startTime,availabilityViewInterval)
                    .buildRequest()
                    .post();
    
    下面是我的示例响应(请求中的availabilityViewInterval值为5,但响应availabilityView不同时):

    答复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文档:

    请帮助我理解请求中“availabilityViewInterval”和响应中“availabilityView”的意义和用法。 另外,状态值是否仅为“忙/闲”,或者它也可以有任何其他值? 提前感谢

    医生说:

    表示响应中availabilityView中某个时间段的持续时间。默认值为30分钟,最小值为5分钟,最大值为1440分钟。可选

    这意味着
    可用性视图中的时间段大小。看一个例子可能会有所帮助

    以下是来自文档的示例请求:

    {        
        "schedules": ["adelev@contoso.onmicrosoft.com", "meganb@contoso.onmicrosoft.com"],
        "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=忙碌,我们可以将其解码为:

    • 上午9时至10时繁忙
    • 上午10时至11时免费
    • 上午11时至下午12时免费
    • 中午12点至下午1点繁忙
    • 下午1点至2点忙
    • 下午2点至3点免费
    • 下午3点至4点免费
    • 下午4点至5点暂定
    • 下午5点至6点免费

    如果您在将
    availabilityViewInterval
    设置为30的情况下执行相同的请求,您将得到
    availabilityView
    22000022200001100
    ,每个数字代表30分钟的时间段。

    感谢@Jason Johnston的详细解释。现在我觉得这一切都有道理。非常感谢你的努力。谢谢。很高兴能帮忙!如果你不介意,请接受答案,让其他人更容易找到。完成。再次感谢你的帮助。
    {        
        "schedules": ["adelev@contoso.onmicrosoft.com", "meganb@contoso.onmicrosoft.com"],
        "startTime": {
            "dateTime": "2019-03-15T09:00:00",
            "timeZone": "Pacific Standard Time"
        },
        "endTime": {
            "dateTime": "2019-03-15T18:00:00",
            "timeZone": "Pacific Standard Time"
        },
        "availabilityViewInterval": 60
    }