【问题标题】:Outlook StickyNote Color in Outlook on the webOutlook 网页版 Outlook 中的 Outlook StickyNote 颜色
【发布时间】:2021-06-28 12:17:32
【问题描述】:

我正在开发一个需要创建 Outlook 便笺 (StickyNote) 的 Outlook 加载项。由于 Outlook REST API 和 Graph API 不支持这一点,我正在使用 Exchange Web Services (EWS)。我可以成功创建这样的笔记:

createNote(subject, body) {
    var xml =
        '<?xml version="1.0" encoding="utf-8"?>' +
        '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' +
        '               xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"' +
        '               xmlns:xsd="https://www.w3.org/2001/XMLSchema"' +
        '               xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"' +
        '               xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">' +
        '  <soap:Body>' +
        '    <m:CreateItem MessageDisposition="SaveOnly">' +
        '      <m:SavedItemFolderId>' +
        '        <t:DistinguishedFolderId Id="notes" />' +
        '      </m:SavedItemFolderId>' +
        '      <m:Items>' +
        '        <t:Message>' +
        '          <t:ItemClass>IPM.StickyNote</t:ItemClass>' +
        '          <t:Subject>' + subject + '</t:Subject>' +
        '          <t:Body>' + body + '</t:Body> ' +
        '          <t:ExtendedProperty>' +
        '            <t:ExtendedFieldURI PropertySetId="0006200E-0000-0000-C000-000000000046" PropertyId="35584" PropertyType="Integer" />' +
        '            <t:Value>1</t:Value>' +
        '          </t:ExtendedProperty>' +
        '        </t:Message>' +
        '      </m:Items>' +
        '    </m:CreateItem>' +
        '  </soap:Body>' +
        '</soap:Envelope>';

    Office.context.mailbox.makeEwsRequestAsync(xml, function (result) {
        if (result === Office.AsyncResultStatus.Succeeded)
            console.log(result.value);
    });
}

扩展属性是设置便笺的颜色(0 = 蓝色,1 = 绿色,2 = 粉红色,3 = 黄色,4 = 白色)。但是,这仅适用于 Outlook 桌面应用程序。 Outlook 网页版将所有笔记显示为灰色。我假设它使用另一个自定义属性来设置颜色。任何人都知道如何在 Outlook 网页版中设置笔记颜色?

【问题讨论】:

  • 在不涉及 Office 插件的情况下使用纯 EWS 是否获得相同的结果?

标签: exchange-server exchangewebservices outlook-web-addins


【解决方案1】:

我建议你获取一个 MAPI 编辑器,比如 MFCMapi 的 OutlookSpy,并查看以下属性

如果我在 JSON _Note 属性中设置颜色,它是一个 JSON 字符串,例如

{"schemaVersion":"beta","documentModifiedAt":"2021-01-13T02:18:33.411Z","document":{"type":"document","blocks":[{"type":"paragraph","id":"ej73vbcb-c65a-4a4e-944a-243f540eaa16","content":[{"text":"test1","styles":null}],"blockStyles":[{"textDirection":"ltr"}]},{"type":"paragraph","id":"55pcod81-f62a-4cc8-be0b-ea28404bd60b","content":null}]},"createdWithLocalId":"1f202a39-cc90-4812-b7ff-9beef48af549","createdWithLocalId@Is.Queryable":"True","createdByApp":"OWA","createdByApp@Is.Queryable":"True","color":4,"color@Is.Queryable":"True","documentModifiedAt@Is.Queryable":"True","#type.documentModifiedAt":"DateTime","#type.createdWithLocalId":"String","#type.createdByApp":"String","#type.color":"Int32"}

然后刷新 OWA,这将改变 OWA 中笔记的颜色。更改 #color 属性似乎没有任何作用。一些问题虽然这将不受支持,但在 Outlook 桌面和 OWA 之间的颜色不同步,此时整数值不对齐,例如 3 在 Outlook 桌面中是黄色,在 OWA 中是粉红色。或许值得在 Q&A https://docs.microsoft.com/en-us/answers/topics/office-outlook-itpro.html 上再问一个问题(没有提到任何关于尝试使用代码的内容),只需问一下为什么在使用客户端时桌面和 OWA 之间的颜色不同步。

【讨论】:

  • 谢谢。这有很大帮助。我可以确认这是用于设置颜色的属性。然而,通过 EWS 设置值似乎具有挑战性。我可以将它完全设置为您的 json,但颜色不会改变。奇怪的部分来了。如果我稍后在 OutlookSpy 中打开该属性并单击 SaveChanges,而不实际更改任何内容,颜色将更改为我之前在 EWS 中设置的颜色。
  • 这是我设置属性的方式: { ... json ... }
  • 我已经包含了一个示例,我可以使用它来创建和修改现有的便笺,并且似乎可以正常工作。您需要确保在更新时设置了颜色和注释属性,并确保在创建期间设置了扩展属性。如果您查看 OWA 正在使用自己的私有 API substrate.office.com/NotesClient/api/v2.0/me/notes 来执行此操作。所以你需要小心一点,因为它会被本地 Windows 10 Sticknote 应用程序用来在本地同步等,所以不要复制像 Id 这样的东西,否则如果使用该应用程序,你可能会发现事情开始崩溃等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多