交换 EWS ID 转换



我正在尝试构建一个EWS(通过SOAP-它是一个PHP应用程序,没有.net!)应用程序,该应用程序查找任意用户的约会,然后查找约会详细信息(如果可能)。

我使用GetUserAvailability电话并从中取回CalendarEvent。到目前为止一切顺利,对于我在 Outlook 中拥有查看权限的事件,我在CalendarEvent内也得到了一个CalendarEventDetails块。但是,ID是我可以在后续GetItem调用中使用的任何内容:

  • CalendarEventDetails身份证 :00000000D18EFE3E27D8FA498176E18417AF9E590700B2A9C65B63B7D74B9028423C9EEB4F6800000000010D0000B2A9C65B63B7D74B9028423C9EEB4F6800008765890B0000
  • FindItem调用检索到的CalendarItem中的 ID(在目标用户的"日历"文件夹上):AAMkAGM5ODcxMzhjLTRkMGYtNDVmNC1iOTc5LTMyNWIyZTJhNWVjZABGAAAAAADRjv4+J9j6SYF24YQXr55ZBwCyqcZbY7fXS5AoQjye609oAAAAAAENAACyqcZbY7fXS5AoQjye609oAACHZYkLAAA=
当我对FindItem

ID 进行base64 解密并将其转换为十六进制时,FindItemid 似乎由一些标头、UUID 和来自CalendarEventDetails的 ID 组成。

我需要做什么才能将CalendarEventDetailsID 与GetItem通话一起使用?

00000000D18EFE3E27D8FA498176E18417AF9E590700B2A9C65B63B7D74B9028423C9EEB4F68000000000010D0000B2A9C65B63B7D74B9028423C9EEB4F6800008765890B0000

此 ID 是日历约会的 HexEntryId,因此需要使用 EWS https://msdn.microsoft.com/en-us/library/office/bb799665(v=exchg.150)中的 ConvertId 操作将其转换为 EWSId.aspx。您需要从类型 HexEntryId 转换为 EWSid 例如

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<t:RequestServerVersion Version="Exchange2010_SP2" />
</soap:Header>
<soap:Body>
<m:ConvertId DestinationFormat="EwsId">
<m:SourceIds>
<t:AlternateId Format="HexEntryId" Id="00000000D18EFE3E27D8FA498176E18417AF9E590700B2A9C65B63B7D74B9028423C9EEB4F6800000000010D0000B2A9C65B63B7D74B9028423C9EEB4F6800008765890B0000" Mailbox="user@domain.com" />
</m:SourceIds>
</m:ConvertId>
</soap:Body>
</soap:Envelope>

相关内容

最新更新