在EWS托管API中获得递归主ID

时间:2018-08-28 09:19:15

标签: exchangewebservices

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

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

通过阅读以下链接中的文档,我只找到了如何使用C#框架Appointment.BindToRecurringMaster方法做到这一点

我想要的是等效于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来成功做到了。

但这不能解决我的问题,因为在应用程序中我只知道重复序列的出现。通过调查出现的对象,我发现与重复出现的主对象没有任何关系。没有指定递归主记录的开始时间和结束时间,我看不到任何其他有用的信息来解决此问题。

我不喜欢的唯一启发式解决方案是调用FindItem,其开始时间等于事件的创建时间,结束时间等于事件的结束时间,因为循环主控很可能位于两者之间。但即使在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>

从上面的信息中,我想找到循环主机的itemId。 就我而言,女巫是AAMkADIwODJiODlkLTk0NmItNGE1My04OGU2LTk2OGQxZDMxMDBjYgBGAAAAAAAX3ip3BbvRS71FQ5ezQnIeBwCdL5gNa5yBS4BpkCX4AHy6AAAAAAENAACdL5gNa5yBS4BpkCX4AHy6AAD0+ANcAAA=

2 个答案:

答案 0 :(得分:0)

也许我丢失了一些东西,但是BindToRecurringMaster 是EWS托管API获取实例实例的方法。您还在寻找什么?

答案 1 :(得分: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