基本上我的应用程序可以通过Skype For Business阅读已保存的对话。但Skype for business无法通过我的应用程序读取已保存的会话。
我在开发应用程序时使用JavaScript。
以下详细信息;
我正在尝试保存到对话历史文件夹,并在本机Skype for Business客户端中正确查看。
这是我的SOAP请求:
POST /EWS/Exchange.asmx HTTP/1.1
Host: <username>:<password>@<domain>
Content-Type: text/xml
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Header>
<t:RequestServerVersion Version="Exchange2013" />
</soap:Header>
<soap:Body>
<m:CreateItem MessageDisposition="SaveOnly">
<m:SavedItemFolderId>
<t:FolderId Id="AAMkADI2ZWUxY2Y4LTM4MjQtNGRiMC04NGU5LWNjMTkwMmI2ZGZhYwAuAAAAAAARYud90uTpQaW383uiLjbQAQBu8bl+jmTVT6UWWk0qHuXQAAAA2qSWAAA=" ChangeKey="AQAAABYAAABu8bl+jmTVT6UWWk0qHuXQAAAA2q+x" />
</m:SavedItemFolderId>
<m:Items>
<t:Message>
<t:ItemClass>IPM.Note.Microsoft.Conversation</t:ItemClass>
<t:Subject>Conversation with John Doe</t:Subject>
<t:Body BodyType="HTML">
<![CDATA[<head
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:history="http://schemas.microsoft.com/2008/10/sip/convItems"
xmlns:rtc="urn:microsoft-rtc-xslt-functions"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><style type="text/css">
<!-- @charset "utf-8"; body { margin-left: 11px; margin-top: 11px; margin-right: 11px; margin-bottom: 11px; } p { margin:0; padding:0; } .header { font-size: 16px; font-style: normal; line-height: 18px; font-weight: bold; font-variant: normal; text-transform: none; color: #000000; text-decoration: none; font-family: "Segoe UI"; } .callDuration { font-family: "Segoe UI"; font-size: 11px; font-style: normal; line-height: 18px; font-weight: normal; font-variant: normal; text-transform: none; color: #000000; text-decoration: none; } .notes_bkg { background-color: #e4eefc; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #b5c4df; vertical-align: middle; padding-top: 5px; padding-right: 8px; padding-bottom: 5px; padding-left: 20px; } .notes_title { font-family: "Segoe UI"; font-size: 12px; font-style: normal; line-height: 18px; font-weight: bold; font-variant: normal; text-transform: none; color: #15429d; text-decoration: none; } .note_message { font-family: "Segoe UI"; font-size: 11px; font-style: normal; line-height: 18px; font-weight: normal; font-variant: normal; text-transform: none; color: #15429d; text-decoration: none;} .list_name { font-family: "Segoe UI"; font-size: 12px; font-style: normal; font-weight: bold; font-variant: normal; text-transform: none; color: #000000; text-decoration: none; line-height: 18px; } .list_title_company { font-family: "Segoe UI"; font-size: 11px; font-style: normal; line-height: 18px; font-weight: normal; font-variant: normal; text-transform: uppercase; color: #666666; text-decoration: none; } .list_label { font-family: "Segoe UI"; font-size: 11px; font-style: normal; line-height: 25px; font-weight: normal; font-variant: normal; text-transform: none; color: #C0C0C0; text-decoration: none; } .links { font-family: "Segoe UI"; font-size: 11px; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; color: #0000FF; text-decoration: underline; } .line { border-top-width: 1px; border-top-style: solid; border-top-color: #b5c4df; height: 1px; background-color: #b5c4df; } .footer_line { padding-top: 30px; padding-bottom: 0px; padding-right: 0px; padding-left: 0px; } .footer { font-family: "Segoe UI"; font-size: 11px; font-style: normal; line-height: 0px; font-weight: normal; font-variant: normal; text-transform: none; color: #C0C0C0; text-decoration: none; padding-top: 11px; padding-bottom: 8px; } .header_box { padding-top: 11px; padding-bottom: 11px; } .contacts_box { padding-top: 20px; padding-bottom: 0px; padding-right: 0px; padding-left: 80px; } .list_value { font-family: "Segoe UI"; font-size: 11px; font-style: normal; line-height: 25px; font-weight: normal; font-variant: normal; text-transform: none; color: #000000; text-decoration: none; } .im_sender { font-family: "Segoe UI"; font-size: 11px; font-style: normal; line-height: 18px; font-weight: bold; font-variant: normal; text-transform: none; color: #666666; text-decoration: none; } .message_timestamp { font-family: "Segoe UI"; font-size: 11px; font-style: normal; line-height: 18px; font-weight: bold; font-variant: normal; text-transform: none; color: #666666; text-decoration: none; } .messageInfo { margin-left:8px; } .notification { font-family: "Segoe UI"; font-size: 11px; font-style: normal; line-height: 18px; font-weight: normal; font-variant: normal; text-transform: none; color: #666666; text-decoration: none; } -->
</style>
</head>
<body>
<div
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:history="http://schemas.microsoft.com/2008/10/sip/convItems"
xmlns:rtc="urn:microsoft-rtc-xslt-functions">
<span>My Name</span>
<span>05:28 PM:</span>
<div>
<meta name="Generator" content="Microsoft Word 15 (filtered)"
<style>
<!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4;} @font-face {font-family:"Segoe UI"; panose-1:2 11 5 2 4 2 4 2 2 3;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin-top:0cm; margin-right:0cm; margin-bottom:8.0pt; margin-left:0cm; line-height:107%; font-size:11.0pt; font-family:"Calibri",sans-serif;} .MsoChpDefault {font-family:"Calibri",sans-serif;} .MsoPapDefault {margin-bottom:8.0pt; line-height:107%;} /* Page Definitions */ @page WordSection1 {size:612.0pt 792.0pt; margin:72.0pt 72.0pt 72.0pt 72.0pt;} div.WordSection1 {page:WordSection1;} -->
</style>
<div>
<p style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal;text-autospace:none">
<span style="font-size:10.0pt;font-family:"Segoe UI",sans-serif;color:black">test</span>
</p>
</div>
</div>
</div>
</body></html>]]>
</t:Body>
<t:ExtendedProperty>
<t:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="ConversationXml.{CA2F170A-A22B-4f0a-B899-93439DEC3FBC}" PropertyType="String" />
<t:Value><conversations
xmlns="http://schemas.microsoft.com/2008/10/sip/convItems" minSupportedClientVersion="3.0.0.0"><conversationXml></conversationXml></conversations>
</t:Value>
</t:ExtendedProperty>
<t:ExtendedProperty>
<t:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="Direction.{2DA4DF04-920D-4b0b-A1D7-5FC9D21857FE}" PropertyType="Integer" />
<t:Value>1</t:Value>
</t:ExtendedProperty>
<t:ExtendedProperty>
<t:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="Modalities.{0885EA21-B7A5-4050-BFDB-AD46DE1D6A87}" PropertyType="Integer" />
<t:Value>1</t:Value>
</t:ExtendedProperty>
<t:ExtendedProperty>
<t:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="IsCustomSubject.{703DC3CB-8F24-4e3f-932F-206233656759}" PropertyType="Integer" />
<t:Value>0</t:Value>
</t:ExtendedProperty>
<t:ExtendedProperty>
<t:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="DisplayDirection.{4255C773-497E-4b5e-9205-F360CAF3316A}" PropertyType="String" />
<t:Value>Incoming</t:Value>
</t:ExtendedProperty>
<t:ExtendedProperty>
<t:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="RemoteParty.{664AD731-19D0-4344-93FD-682FE0440D95}" PropertyType="String" />
<t:Value>john.doe@domain</t:Value>
</t:ExtendedProperty>
<t:ExtendedProperty>
<t:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="HistoryInfo.{553F3F08-FC28-41db-859E-63457407F806}" PropertyType="String" />
<t:Value>john.doe@domain</t:Value>
</t:ExtendedProperty>
<t:ExtendedProperty>
<t:ExtendedFieldURI PropertyTag="3591" PropertyType="Integer" />
<t:Value>1</t:Value>
</t:ExtendedProperty>
<t:ToRecipients>
<t:Mailbox>
<t:EmailAddress>john.doe@domain</t:EmailAddress>
</t:Mailbox>
<t:Mailbox>
<t:EmailAddress>my.account@domain</t:EmailAddress>
</t:Mailbox>
</t:ToRecipients>
<t:From>
<t:Mailbox>
<t:Name>My Name</t:Name>
<t:EmailAddress>my.account@domain</t:EmailAddress>
</t:Mailbox>
</t:From>
</t:Message>
</m:Items>
</m:CreateItem>
</soap:Body>undefined</soap:Envelope>
我在上面的请求中使用虚拟数据。标记<SavedItemFolderId>
内的文件夹ID是转化历史记录文件夹的ID。该请求还有一个非常大的HTML内容和样式。
我可以将项目保存到Conversation History文件夹中,并在我的Outlook客户端中查看。
虽然我可以将其视为原生Skype for Business Windows客户端中的“对话历史记录”项目,但是当我双击它时,我看不到对话内容(消息)。
我认为我正在以错误的方式进行配置或HTML内容。
有没有人试图保存对话历史记录并在原生客户端中查看?你有什么建议吗?
答案 0 :(得分:0)
我已经解决了这个问题。
真正的问题是,你是genetaring conversationXml,但是你没有把你的消息体放在这个conversationXML中。因此,如果您给出如下参数,您将解决问题。
你会看到+ body +(身体格式为HTML)
顺便说一句,你应该给出特定的格式你正在放置正文(文本/ HTML,文本/ RTF)
let cnvXML ='<conversations xmlns=\"http://schemas.microsoft.com/2008/10/sip/convItems\" minSupportedClientVersion=\"3.0.0.0\"><conversationXml><imReceived xmlns=\"http://schemas.microsoft.com/2008/10/sip/convItems\" ts=\"2017-11-14T07:18:47Z\" from=\"sip:tan.tastan@gbsolutions.work\" displayName=\"Tan Tastan\" firstMessage=\"true\" type=\"text/html\"><messageInfo type=\"text/html\" msgid=\"\" sequenceid=\"0\">'+body+'</messageInfo></imReceived></conversationXml></conversations>';
然后你必须改变这两个参数,如下所示;
... SetExtendedProperty(RemoteParty,“sip:participantName@yourDomain.com”); ... SetExtendedProperty(HistoryInfo,“sip:participantName@yourDomain.com”);
之后,您将意识到Native Skype的历史记录选项卡中的另一个问题,您将看到未显示消息预览。因此,如果您添加如下参数,您将解决第二个问题。
... SetExtendedProperty(PreviewMessage,messagePreview);
我希望我能清楚地解释这个解决方案。