获取EWS托管API中的重复主标识

问题描述 投票:0回答:2

我想知道使用EWS Managed API知道该系列中一个事件项的重复序列主ID。

我找不到关于这个主题的任何相关文件。

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

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

我知道我可以使用FindItem获取Recurrence Master对象。但我发现从随机事件到Recurrence Master对象没有连接,所以我不知道如何使用FindItem查询以获取Recurrence Master对象。

编辑:澄清

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

那么对我有用的是SOAP请求与BindToRecurringMaster的等价。在文档中,他们提到我可以使用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&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>

从上面的信息我想找到Recurring Master的itemId。在我的情况下,女巫是AAMkADIwODJiODlkLTk0NmItNGE1My04OGU2LTk2OGQxZDMxMDBjYgBGAAAAAAAX3ip3BbvRS71FQ5ezQnIeBwCdL5gNa5yBS4BpkCX4AHy6AAAAAAENAACdL5gNa5yBS4BpkCX4AHy6AAD0+ANcAAA=

exchangewebservices
2个回答
0
投票

也许我错过了一些东西,但BindToRecurringMaster是获取实例主人的EWS Managed API方法。你还在寻找什么?


0
投票

我找到了我所缺少的东西。

我应该使用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://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/recurringmasteritemid

© www.soinside.com 2019 - 2024. All rights reserved.