2017-07-04 34 views
0

我正在開發用於MAC Outlook客戶端的Office加載項。我試圖發送PATCH請求來設置MAC Outlook客戶端的擴展屬性,但它不起作用。執行下面的代碼後沒有響應。下面的代碼片段適用於MAC Safari瀏覽器和Windows桌面/瀏覽器。你有什麼主意嗎?無法發送PATCH請求以在MAC Outlook客戶端中設置擴展屬性

注意:用您的電子郵件ID替換XXXX。電子郵件ID可以通過outlook rest api沙盒檢索。 https://oauthplay.azurewebsites.net/或通過Office.js Office.Context.Mailbox.Item.itemId https://dev.office.com/reference/add-ins/outlook/1.5/Office.context.mailbox.item?product=outlook&version=v1.5

 function setFlag() { 
      var options = { 
      isRest: true, 
      }; 
      Office.context.mailbox.getCallbackTokenAsync(options, cb); 
     } 

     function cb(asyncResult) { 
      var token = asyncResult.value; 
      setEmailFlagByToken(token); 
     } 
     function setEmailFlagByToken(accessToken) { 
     var getMessageUrl = 'https://outlook.com/api/beta/me/messages/XXXX' 
      $.ajax({ 
      url: getMessageUrl, 
      dataType: 'json', 
      contentType:"application/json", 
      type:'PATCH', 
      data: "{'Flag':{'FlagStatus':'Flagged'}}", 
      headers: { 'Authorization': 'Bearer ' + accessToken } 
      }).done(function(data){ 
      //Succeeded 

      }).fail(function(error){ 
      // Handle error 
      }); 
     } 


Updated XML Manifest file: 
<?xml version="1.0" encoding="UTF-8"?> 
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="MailApp"> 
    <Id>47837963-11df-469e-a84e-661070c8217c</Id> 
    <Version>1.0.0.0</Version> 
    <ProviderName>[Provider name]</ProviderName> 
    <DefaultLocale>en-US</DefaultLocale> 
    <DisplayName DefaultValue="OfficeAddIn" /> 
    <Description DefaultValue="OfficeAddIn"/> 
    <Hosts> 
    <Host Name="Mailbox" /> 
    </Hosts> 
    <Requirements> 
    <Sets> 
     <Set Name="MailBox" MinVersion="1.1" /> 
    </Sets> 
    </Requirements> 
    <FormSettings> 
    <Form xsi:type="ItemRead"> 
     <DesktopSettings> 
     <SourceLocation DefaultValue="https://mailapppoc2.azurewebsites.net/AddInRead/Home/Home.html"/> 
     <RequestedHeight>250</RequestedHeight> 
     </DesktopSettings> 
    </Form> 
    </FormSettings> 
    <Permissions>ReadWriteMailbox</Permissions> 
    <Rule xsi:type="RuleCollection" Mode="Or"> 
    <Rule xsi:type="ItemIs" ItemType="Message" FormType="Read" /> 
    </Rule> 
    <DisableEntityHighlighting>false</DisableEntityHighlighting> 
</OfficeApp> 
+0

現在通過安裝Office Inside Fast修復了該問題,並在9/2/2017更新了安裝位,該安裝位修復了此問題。 @deepak – ChrisBao

回答

0

休息令牌使REST調用在MAC Outlook客戶端支持爲1.5 API的一部分。請確保您在提出請求時使用最新的Outlook二進制文件。在較舊的二進制文件中,此支持不存在。此前,它只會提供EWS令牌,這將使您只能發出ews請求。內幕快速程序用戶可以獲得支持該功能的二進制文件。

+0

這篇文章不是一個實際的嘗試來回答這個問題。請注意[StackOverflow不像討論區](http://stackoverflow.com/tour),它是一個問答網站,每個帖子都是問題或問題的答案。帖子也可以有[評論](http://stackoverflow.com/help/privileges/comment) - 這樣的小句子 - 可以用來批評或請求作者澄清。這應該是一個評論或[新問題](http://stackoverflow.com/questions/ask) –

+0

@deepak,我的MAC Outlook客戶端版本是15.33(170409),你認爲它會工作? – ChrisBao

+0

不,170409沒有這種支持,你需要更新構建。此功能已作爲Outlook for Mac的Insider快速程序的一部分發布。如果你不是內部快速程序的一部分,請註冊。 – deepak

相關問題