2017-10-17 52 views
1

基本上我的应用程序可以通过Skype For Business读取保存的对话。但Skype for business无法通过我的应用程序阅读保存的对话。没有查看特定的保存对话Javascript

我在开发我的应用程序时使用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:&quot;Segoe UI&quot;,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>&lt;conversations 
      xmlns=&quot;http://schemas.microsoft.com/2008/10/sip/convItems&quot; minSupportedClientVersion=&quot;3.0.0.0&quot;&gt;&lt;conversationXml&gt;&lt;/conversationXml&gt;&lt;/conversations&gt; 
      </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>[email protected]</t:Value> 
     </t:ExtendedProperty> 
     <t:ExtendedProperty> 
      <t:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" PropertyName="HistoryInfo.{553F3F08-FC28-41db-859E-63457407F806}" PropertyType="String" /> 
      <t:Value>[email protected]</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>[email protected]</t:EmailAddress> 
      </t:Mailbox> 
      <t:Mailbox> 
      <t:EmailAddress>[email protected]</t:EmailAddress> 
      </t:Mailbox> 
     </t:ToRecipients> 
     <t:From> 
      <t:Mailbox> 
      <t:Name>My Name</t:Name> 
      <t:EmailAddress>[email protected]</t:EmailAddress> 
      </t:Mailbox> 
     </t:From> 
     </t:Message> 
    </m:Items> 
    </m:CreateItem> 
</soap:Body>undefined</soap:Envelope> 

我在上面的请求中使用虚拟数据。标签<SavedItemFolderId>内的文件夹Id是转换历史记录文件夹的ID。该请求还包含一个带有样式的相当大的HTML内容。

我可以将项目保存到“对话历史记录”文件夹中,并在我的Outlook客户端中查看它。

虽然我可以将其视为本地Skype for Business Windows客户端中的对话历史记录项,但双击它时我无法看到对话内容(消息)。

我想我是以错误的方式做配置或HTML内容。

有没有人曾试图保存对话历史记录,并在本地客户端看到它?你有什么建议吗?

+0

你对这个问题有什么意见吗? – tntstn

回答

0

我已经解决了tihs问题。

真正的问题是,你是genetaring conversationXml,但你不会把你的消息放在这个对话XML中。所以如果你给参数如下,你将解决这个问题。

你会看到+体+(体为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:[email protected]\" displayName=\"Tan Tastan\" firstMessage=\"true\" type=\"text/html\"><messageInfo type=\"text/html\" msgid=\"\" sequenceid=\"0\">'+body+'</messageInfo></imReceived></conversationXml></conversations>'; 

然后spesifically wihch格式的方式您必须如下更改这两个参数;

... SetExtendedProperty(RemoteParty,“sip:[email protected]”); ... SetExtendedProperty(HistoryInfo,“sip:[email protected]”);

之后,您将意识到另一个问题是在Native Skype的“历史记录”选项卡中,您将看到消息预览未显示。所以如果你添加下面的参数,你将解决第二个问题。

... SetExtendedProperty(PreviewMessage,messagePreview);

我希望我明确解释了解决方案。