使用来自EWS或REST API的office365 JS API访问CustomProperties

我有一个Office 365邮件应用程序,它在保存项目之前将值存储在自定义属性中。 保存项目时,我想使用服务器端应用程序访问此属性。 阅读自定义属性文档告诉我,我无法使用任何其他服务(如EWS)访问使用JS API创建的自定义属性,因为这些不是MAPI属性。 有没有解决方法? 是否可以使用REST API访问这些?

实际上,它记录了它们存储的位置和格式。 [MS-OXCEXT]规范提供了具体细节。 基本上,这些值作为JSON字典存储在项目的自定义属性中。 您应该能够使用EWS将该自定义属性读取为ExtendedProperty

更新:在与内部人士讨论后,我应该否认这不是像MrPiao所说的那样受支持的方法。 如上所述,存储设计可能会发生变化,如果您依赖当前设计,这会破坏您的应用。 关注的是,我不想引导你走上最终变得不可行的道路:)。 如果您可以描述您的最终目标,也许我们可以建议一个更持久的解决方案。

自定义属性绝对只能由Apps for Outlook API创建和访问。 但是 ,这个属性必须存储在某个地方 – 这就是项目。 我很确定如果你进行了一个GetItem调用并枚举了该项目的每个属性,你将能够访问自定义道具。

需要注意的是,这绝对是一个不受支持的场景 。 设计可能在未来发生变化,这种情况可能会中断。 我绝对不会在生产环境中访问Mail App外的自定义属性。

 Guid PS_PUBLIC_STRINGS = new Guid("00020329-0000-0000-C000-000000000046"); ////PS_PUBLIC_STRINGS' GUID ExtendedPropertyDefinition extendedPropertyDefinition = new ExtendedPropertyDefinition(PS_PUBLIC_STRINGS, "cecp-{your add-in manifest id}", MapiPropertyType.String); PropertySet psPropSet = new PropertySet() { extendedPropertyDefinition }; message.Load(psPropSet);