在 EWS 托管 API 中获取定期主 ID



我想使用 EWS 托管 API 获取一个定期系列主 ID,知道该系列中的一个出现项。

我找不到有关此主题的任何相关文档。

我只通过阅读以下链接中的文档找到了如何使用 C# 框架 Appointment.BindToRecurringMaster 方法执行此操作的方法

  • https://learn.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

我想要的是 EWS 托管 API 等效于 Appointment.BindToRecurringMaster 方法。

我知道我可以通过使用 FindItem 获取定期主对象。但是我没有看到随机出现的与递归主对象的联系,因此我不知道如何使用 FindItem 进行查询以获取递归主对象。

编辑:澄清

BindToRecurringMaster 是一个 C# 类。我不使用 C#。我与 EWS 的通信是使用 SOAP 请求完成的。在我的理解中,HTTP API是EWS托管API。C# 类是调用 API 的框架的一部分。

因此,对我有帮助的是 BindToRecurringMaster 的 SOAP 请求等效性。 在文档中,他们提到我可以使用 FindItem SOAP 请求来获取定期主对象,我通过使用定期主会议的开始时间和结束时间筛选器调用 FindItem 成功地做到了这一点。

但这并不能解决我的问题,因为在应用程序中我只知道循环序列的出现。通过调查发生对象,我看不到与重复主数据的任何联系。未指定重复主节点的开始时间和结束时间,我没有看到任何其他有用的信息来解决问题。

我唯一的启发式解决方案,我不喜欢的女巫,是在开始时间等于发生的创建时间和结束时间等于发生的结束时间的情况下调用 FindItem,因为重复主控很可能介于两者之间。但即使在 100% 的情况下也是如此。

如果存在 BindToRecurringMaster SOAP 请求,我找不到任何关于它的文档。在这种情况下,指向该文档的链接将是完美的。

编辑:肥皂示例

具有发生对象的查找项响应。 我删除了对问题肯定不重要的信息。

<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&amp;exvsurl=1&amp;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>

从上面的信息中,我想找到重复主节点的 itemId。 就我而言,女巫是AAMkADIwODJiODlkLTk0NmItNGE1My04OGU2LTk2OGQxZDMxMDBjYgBGAAAAAAAX3ip3BbvRS71FQ5ezQnIeBwCdL5gNa5yBS4BpkCX4AHy6AAAAAAENAACdL5gNa5yBS4BpkCX4AHy6AAD0+ANcAAA=.

我找到了我缺少的东西。

我应该使用 RecurringMasterItemId 元素调用 GetItem。 类似的东西

<GetItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<ItemShape>
<t:BaseShape>AllProperties</t:BaseShape>
</ItemShape>
<ItemIds>
<t:RecurringMasterItemId OccurrenceId="AAMkADIwODJiODlkLTk0NmItNGE1My04OGU2LTk2OGQxZDMxMDBjYgFRAAgI1g4Lh3xAAEYAAAAAF94qdwW70Uu9RUOXs0JyHgcAnS+YDWucgUuAaZAl+AB8ugAAAAABDQAAnS+YDWucgUuAaZAl+AB8ugAA9PgDXAAAEA==" />
</ItemIds>
</GetItem>

这就是我一直在寻找的文档

https://learn.microsoft.com/en-us/exchange/client-developer/web-service-reference/recurringmasteritemid

也许我错过了一些东西,但 BindToRecurringMaster获取实例主节点的 EWS 托管 API 方法。 您还在寻找什么?

最新更新