【问题标题】:Fail to send the PATCH request to set the extended property in MAC outlook clientMAC Outlook 客户端设置扩展属性的 PATCH 请求失败
【发布时间】:2023-03-22 11:21:01
【问题描述】:

我正在为 MAC Outlook 客户端开发 Office 插件。我正在尝试发送 PATCH 请求以在 MAC Outlook 客户端中设置扩展属性,但它不起作用。执行下面的代码后没有任何反应。下面的代码 sn-p 适用于 MAC Safari 浏览器和 windows 桌面/浏览器。你有什么主意吗?

注意:将 XXXX 替换为您的电子邮件 ID。电子邮件 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>

【问题讨论】:

  • 现在通过安装 Office Inside Fast 解决了这个问题,并且在 2017 年 9 月 2 日更新了一个安装位来解决这个问题。 @deepak

标签: outlook ms-office outlook-addin outlook-restapi


【解决方案1】:

作为 1.5 API 的一部分,mac Outlook 客户端支持用于进行休息调用的休息令牌。请确保您在发出请求时使用的是最新的 Outlook 二进制文件。在较旧的二进制文件中,不存在此支持。早些时候,它只会提供 EWS 令牌,这将使您只能发出 ews 请求。 Insider 快速程序用户获取支持此功能的二进制文件。

【讨论】:

  • 这篇文章并不是回答问题的实际尝试。请注意StackOverflow doesn't work like a discussion forum,这是一个问答网站,每个帖子都是问题或问题的答案。帖子也可以有comments - 像这样的小句子 - 可用于批评或要求作者澄清。这应该是评论或new question
  • @deepak,我的MAC Outlook客户端版本是15.33(170409),你觉得可以吗?
  • 不,170409 没有这个支持,你需要更新构建。此功能已作为 Outlook for Mac 的 Insider 快速程序的一部分发布。如果您不是 Insider Fast 计划的成员,请注册。
  • @deepak,我加入了适用于 Mac 版 Outlook 的 Insider 快速程序并下载了更新的安装位,但这个问题仍然存在。当前 MAC 版本的 Outlook 客户端是 15.37(170707),这应该可以工作吗?
  • 是的,这应该可以。您应该在 170707 构建中获得休息令牌,可用于进行休息 api 调用。你遇到了什么错误?
猜你喜欢
  • 2014-04-16
  • 2012-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多