我正在尝试在我的办公室内制作一个简单的房间预订应用程序。用户可以选择一个时间范围、查看可用房间并预订房间(在该房间的那个时间范围内在他们的日历中创建一个事件)。
为了查看可用的房间,我尝试使用 Microsoft Graph REST API,特别是 POST 方法 - getSchedule。
getSchedule 的示例请求如下所示
{
"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"
}
我将办公室中的所有房间都放在日程表中,然后可以根据可用性视图在响应中查看它们的可用性。
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(microsoft.graph.scheduleInformation)",
"value": [
{
"scheduleId": "adelev@contoso.onmicrosoft.com",
"availabilityView": "000220000",
"scheduleItems": [
{
"isPrivate": false,
"status": "busy",
"subject": "Let's go for lunch",
"location": "Harry's Bar",
"start": {
"dateTime": "2019-03-15T12:00:00.0000000",
"timeZone": "Pacific Standard Time"
},
"end": {
"dateTime": "2019-03-15T14:00:00.0000000",
"timeZone": "Pacific Standard Time"
}
}
],
"workingHours": {
"daysOfWeek": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"startTime": "08:00:00.0000000",
"endTime": "17:00:00.0000000",
"timeZone": {
"name": "Pacific Standard Time"
}
}
},
但是,我不需要回复中提供的任何其他信息。我只想查看 scheduleId 和 availabilityView,因为响应需要永远加载调度请求中的许多房间。
我一直在寻找通过 POST 请求中的参数过滤响应的可用方法:https ://docs.microsoft.com/en-us/graph/query-parameters 。但是,我似乎应用于我的地址的任何过滤器似乎对响应没有任何影响。
我试过了
https://graph.microsoft.com/v1.0/me/calendar/getschedule?$select=availabilityView
对于请求和其他类似的变体没有任何成功。它们都返回完整的 JSON 响应。