Graph API FindMeetingTimes技术问询:忽略组织者日程与全天会议Bug
我来帮你逐一解答这几个关于FindMeetingTimes接口的问题:
1. 能否忽略组织者的日程安排?
完全可以!FindMeetingTimes接口专门提供了ignoreOrganizerAvailability参数,只要在请求体里添加这个字段并设置为true,就能让接口跳过对组织者现有日程的检查。举个简单的示例:
{ "ignoreOrganizerAvailability": true, "attendees": [/* 你的参会者配置 */], "timeConstraint": [/* 你的时间约束 */] }
默认情况下这个参数是false,接口会优先考虑组织者的日程冲突;设置为true后,就会忽略组织者的日程状态,只关注其他参会者和资源的可用性。
2. 关于无法识别全天会议的问题?
一般来说,FindMeetingTimes接口是可以正确识别全天会议的,但如果出现识别异常,大概率是以下两种原因:
- 时区不匹配:如果你的全天会议创建时用的时区和请求中
timeConstraint指定的时区不一致,接口可能会误判会议的时间范围。比如全天会议是UTC时区创建的,但请求用的是Eastern Standard Time,就容易出现偏差。 - 全天会议格式错误:标准的全天会议需要把
start.dateTime设为当天的0点,end.dateTime设为次日的0点,并且保持时区统一。如果start和end都设置为同一天,接口可能不会识别为全天会议。
另外,如果你使用的是较旧版本的Microsoft Graph API,确实存在过一些关于全天会议识别的已知Bug,建议升级到最新的稳定版本来解决这类问题。
3. 你的会议室查询请求不符合预期的原因
看你提供的请求体,我发现一个关键细节:你要查询room1的可用性,但请求里的attendees只添加了管理员账号,并没有把会议室作为资源参与者加入进去。
要查询会议室的可用状态,必须在attendees数组中添加会议室的邮箱地址,并且将type设置为Resource。修正后的请求体应该类似这样:
{ "attendees": [ { "emailAddress": { "address": "admin@mydomain.onmicrosoft.com" }, "type": "Required" }, { "emailAddress": { "address": "room1@mydomain.onmicrosoft.com" }, "type": "Resource" } ], "timeConstraint": { "timeslots": [ { "start": { "dateTime": "2018-04-20T08:00:00", "timeZone": "Eastern Standard Time" }, "end": { "dateTime": "2018-04-20T09:00:00", "timeZone": "Eastern Standard Time" } } ] } }
这样接口才会同时检查管理员和会议室的日程冲突,返回符合你预期的可用时间建议。
内容的提问来源于stack exchange,提问作者Hell.Bent
相关产品推荐
相关产品推荐

