Microsoft Graph设置Scheduled自动回复报计划时长无效错误
问题根因
触发该错误的直接原因是你注释掉的计划自动回复配置里,起止时间顺序写反了:
你当前写死的测试时间中,计划结束时间ScheduledEndDateTime为2022-07-08 18:00 UTC,计划开始时间ScheduledStartDateTime为2022-07-09 18:00 UTC,开始时间晚于结束时间,属于无效时间区间,接口校验不通过就会返回「发送自动回复的计划时长无效」的错误。
你把AlwaysEnabled切换成Scheduled时没有调整时间顺序,所以才会出现常开模式正常、计划模式报错的现象,和权限、SDK调用逻辑无关。
修复方法
把起止时间调换,保证开始时间早于结束时间即可,修正后的配置段如下:
var mailboxSettings = new MailboxSettings { AutomaticRepliesSetting = new AutomaticRepliesSetting { Status = AutomaticRepliesStatus.Scheduled, ScheduledStartDateTime = new DateTimeTimeZone { DateTime = "2022-07-08T18:00:00", TimeZone = "UTC" }, ScheduledEndDateTime = new DateTimeTimeZone { DateTime = "2022-07-09T18:00:00", TimeZone = "UTC" }, ExternalReplyMessage = message, InternalReplyMessage = message, ExternalAudience = ExternalAudienceScope.All } };
其他避坑点
- 如果后续使用方法传入的
start、end参数动态生成时间,一定要加前置校验,强制保证开始时间小于结束时间,避免参数异常触发同类错误 DateTimeTimeZone的DateTime字段只需要传不带时区偏移的ISO 8601格式时间,时区信息统一通过TimeZone字段传递,不要混用格式导致时间解析异常- 非UTC时区需要传入Windows官方定义的时区标识,例如北京时间传
China Standard Time,不要自行缩写时区名称导致识别失败
内容的提问来源于stack exchange,提问作者Wallabout Programming
相关产品推荐
相关产品推荐

