exchangewebservices - 在 EWS 托管 API 中获取 Recurrence Master ID
问题描述
我想使用 EWS 托管 API 获取知道该系列中的一个出现项目的重复系列主 ID。
我找不到有关此主题的任何相关文档。
通过阅读以下链接中的文档,我只找到了如何使用 C# 框架 Appointment.BindToRecurringMaster 方法执行此操作
- https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-access-a-recurring-series-by-using-ews-in-exchange
- https://msdn.microsoft.com/en-us/library/office/microsoft.exchange.webservices.data.appointment.bindtorecurringmaster%28v=exchg.80%29.aspx?f=255&MSPPError=-2147217396
我想要的是等效于 Appointment.BindToRecurringMaster 方法的 EWS 托管 API。
我知道我可以使用 FindItem 获取 Recurrence Master 对象。但是我看不到随机事件与 Recurrence Master 对象的联系,所以我不知道如何使用 FindItem 进行询问以获取 Recurrence Master 对象。
编辑:澄清
BindToRecurringMaster 是一个 C# 类。我不使用 C#。我与 EWS 的通信是使用 SOAP 请求完成的。我理解的那个 HTTP API 是 EWS 托管 API。C# 类是调用 API 的框架的一部分。
所以对我有帮助的是与 BindToRecurringMaster 等效的 SOAP 请求。在他们提到的文档中,我可以使用 FindItem SOAP 请求来获取 Recurring Master 对象,并且我通过使用 Recurring Master 会议的开始时间和结束时间过滤器调用 FindItem 成功地做到了这一点。
但这并不能解决我的问题,因为在应用程序中我只知道循环序列的出现。通过调查发生对象,我发现与 Recurring Master 没有任何联系。没有指定 Recurring Master 的开始时间和结束时间,我没有看到任何其他有用的信息来解决问题。
我唯一不喜欢的启发式解决方案是调用 FindItem ,开始时间等于发生的创建时间,结束时间等于发生的结束时间,因为 Recurring Master 很可能介于两者之间。但即使在 100% 的情况下也是如此。
如果有 BindToRecurringMaster SOAP 请求,我找不到任何文档。在这种情况下,指向该文档的链接将是完美的。
编辑:SOAP 示例
FindItem 响应与发生对象。我删除了对问题肯定不重要的信息。
<t:CalendarItem>
<t:ItemId Id="AAMkADIwODJiODlkLTk0NmItNGE1My04OGU2LTk2OGQxZDMxMDBjYgFRAAgI1g1CXRKAAEYAAAAAF94qdwW70Uu9RUOXs0JyHgcAnS+YDWucgUuAaZAl+AB8ugAAAAABDQAAnS+YDWucgUuAaZAl+AB8ugAA9PgDXAAAEA==" ChangeKey="DwAAABYAAACdL5gNa5yBS4BpkCX4AHy6AAD2t08v"/>
<t:ParentFolderId Id="AAMkADIwODJiODlkLTk0NmItNGE1My04OGU2LTk2OGQxZDMxMDBjYgAuAAAAAAAX3ip3BbvRS71FQ5ezQnIeAQCdL5gNa5yBS4BpkCX4AHy6AAAAAAENAAA=" ChangeKey="AQAAAA=="/>
<t:ItemClass>IPM.Appointment.Occurrence</t:ItemClass>
<t:LastModifiedTime>2018-08-30T05:35:49Z</t:LastModifiedTime>
<t:WebClientReadFormQueryString>https://outlook.office365.com/owa/?ItemID=AAMkADIwODJiODlkLTk0NmItNGE1My04OGU2LTk2OGQxZDMxMDBjYgFRAAgI1g1CXRKAAEYAAAAAF94qdwW70Uu9RUOXs0JyHgcAnS%2BYDWucgUuAaZAl%2BAB8ugAAAAABDQAAnS%2BYDWucgUuAaZAl%2BAB8ugAA9PgDXAAAEA%3D%3D&exvsurl=1&viewmodel=ReadMessageItem</t:WebClientReadFormQueryString>
<t:ConversationId Id="AAQkADIwODJiODlkLTk0NmItNGE1My04OGU2LTk2OGQxZDMxMDBjYgAQAAgPXhhxcbFKo43FovJ4qw8="/>
<t:UID>040000008200E00074C5B7101A82E008000000001F98A565FA3DD4010000000000000000100000002D5A6D87AF17C34A9ED87D01759B021B</t:UID>
<t:RecurrenceId>2018-08-29T18:30:00Z</t:RecurrenceId>
<t:DateTimeStamp>2018-08-28T09:26:45Z</t:DateTimeStamp>
<t:Start>2018-08-29T18:30:00Z</t:Start>
<t:End>2018-08-29T19:30:00Z</t:End>
<t:IsRecurring>true</t:IsRecurring>
<t:CalendarItemType>Occurrence</t:CalendarItemType>
</t:CalendarItem>
从以上信息中我想找到 Recurring Master 的 itemId。就我而言,女巫是AAMkADIwODJiODlkLTk0NmItNGE1My04OGU2LTk2OGQxZDMxMDBjYgBGAAAAAAAX3ip3BbvRS71FQ5ezQnIeBwCdL5gNa5yBS4BpkCX4AHy6AAAAAAENAACdL5gNa5yBS4BpkCX4AHy6AAD0+ANcAAA=
。
解决方案
也许我遗漏了一些东西,但 BindToRecurringMaster是EWS 托管 API 方式来获取实例的主人。你还在寻找什么?
推荐阅读
- node.js - 网络聊天中的 Azure 测试:HTTP 状态代码 NotFound
- javascript - 在 js 中设置时间并使用 Date 获取 ms
- android - Android,Koin:如何防止viewModel绑定的接口创建新的viewModel实例?
- c++ - 运算符 ^ 重载类型为“void”和“<未解析的重载函数类型>”的无效操作数错误
- perl - 为什么当我使用 open ':std', ':encoding(UTF-8)'; 时 File::Slurp 得到 UTF8 字符错误?
- java - 由于 Fragment 类中缺少公共构造方法,在 android 中旋转设备后出现异常
- c - 如何在C中找到一定数量的随机生成数字的平均值?
- php - 尝试修复 ParseError 语法错误,laravel 中的文件意外结束
- r - 将迷你图添加到 R 中的 flextable
- java - Prim算法中的循环检测