2017-10-17 53 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);

我希望我明確解釋瞭解決方案。