我正在尝试构建一个EWS(通过SOAP - 它是一个PHP应用程序,没有.net!)应用程序,它查找任意用户的约会,然后查找(如果可能的话)约会详细信息。 / p>
我使用GetUserAvailability
调用并从中获取CalendarEvent
。到目前为止一切顺利,对于我在Outlook中拥有查看权限的事件,我在CalendarEventDetails
内获得CalendarEvent
块。然而ID
在随后的GetItem
电话中无法使用:
CalendarEventDetails
的{li> ID:00000000D18EFE3E27D8FA498176E18417AF9E590700B2A9C65B63B7D74B9028423C9EEB4F6800000000010D0000B2A9C65B63B7D74B9028423C9EEB4F6800008765890B0000
CalendarItem
调用检索到的FindItem
的ID(位于目标用户的“日历”文件夹中):AAMkAGM5ODcxMzhjLTRkMGYtNDVmNC1iOTc5LTMyNWIyZTJhNWVjZABGAAAAAADRjv4+J9j6SYF24YQXr55ZBwCyqcZbY7fXS5AoQjye609oAAAAAAENAACyqcZbY7fXS5AoQjye609oAACHZYkLAAA=
当我对FindItem
ID进行base64解密并将其转换为十六进制时,FindItem
ID似乎包含一些标头,一个UUID和来自CalendarEventDetails
的ID。
在CalendarEventDetails
来电时使用GetItem
ID需要做什么?
答案 0 :(得分:2)
00000000D18EFE3E27D8FA498176E18417AF9E590700B2A9C65B63B7D74B9028423C9EEB4F6800000000010D0000B2A9C65B63B7D74B9028423C9EEB4F6800008765890B0000
此Id是日历约会的HexEntryId,因此需要使用EWS https://msdn.microsoft.com/en-us/library/office/bb799665(v=exchg.150).aspx中的ConvertId操作将其转换为EWSId。您需要将Type 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>