无法发送PATCH请求以在MAC Outlook客户端中设置扩展属性

问题描述:

我正在开发用于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

休息令牌使REST调用在MAC Outlook客户端支持为1.5 API的一部分。请确保您在提出请求时使用最新的Outlook二进制文件。在较旧的二进制文件中,此支持不存在。此前,它只会提供EWS令牌,这将使您只能发出ews请求。内幕快速程序用户可以获得支持该功能的二进制文件。

+0

这篇文章不是一个实际的尝试来回答这个问题。请注意[*不像讨论区](http://*.com/tour),它是一个问答网站,每个帖子都是问题或问题的答案。帖子也可以有[评论](http://*.com/help/privileges/comment) - 这样的小句子 - 可以用来批评或请求作者澄清。这应该是一个评论或[新问题](http://*.com/questions/ask) –

+0

@deepak,我的MAC Outlook客户端版本是15.33(170409),你认为它会工作? – ChrisBao

+0

不,170409没有这种支持,你需要更新构建。此功能已作为Outlook for Mac的Insider快速程序的一部分发布。如果你不是内部快速程序的一部分,请注册。 – deepak