【问题标题】:Access CustomProperties set using office365 JS APIs from EWS or REST API从 EWS 或 REST API 访问使用 office365 JS API 设置的 CustomProperties
【发布时间】:2018-10-31 18:21:01
【问题描述】:

我有一个 Office 365 邮件应用程序,它在保存项目之前将值存储在自定义属性中。保存项目后,我想使用服务器端应用程序访问此属性。 Reading through the custom properties documentation 告诉我,我无法使用 EWS 等任何其他服务访问使用 JS API 创建的自定义属性,因为这些不是 MAPI 属性。有什么解决方法吗?是否可以使用 REST API 访问这些?

【问题讨论】:

    标签: c# office365 exchangewebservices office365-apps outlook-web-addins


    【解决方案1】:

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

    更新:在与内部人员讨论后,我应该声明这不是 MrPiao 所指出的受支持的方法。如前所述,存储设计可能会发生变化,如果您依赖当前的设计,这会破坏您的应用程序。令人担忧的是,我不想让你走上一条最终变得不可行的道路:)。如果您能描述您的最终目标,或许我们可以提出更持久的解决方案。

    【讨论】:

    • 谢谢@jason-johnston。这真的很有帮助,我能够实现我想要的。我的下一个目标是从作为原始会议与会者的资源邮箱访问这些属性。但这没有用。我以这种方式成功访问了使用 EWS 保存的 public_string。我是不是走上了死胡同?
    • 我很确定这些属性只会存在于使用您的邮件应用程序的用户副本中。资源的副本将没有这些属性。
    • 这与它是资源邮箱有关吗?如果与会者是内部人员,我已经看到当您发送会议请求时会携带公共字符串。我们可以通过使用用户邮箱来解决这个问题吗?
    • @JasonJohnston 在我们的场景中,我们需要访问一些自定义属性,因为我们需要在组合时跟踪“已发送项目”。准确地说,我们向草稿电子邮件添加了一个自定义属性,同时我们使用 Outlook REST API 订阅了“sentitems”推送通知。在 web 钩子中,我们读取这个自定义属性以访问在写入时插入的信息。
    【解决方案2】:

    自定义属性绝对意味着只能由 Outlook API 应用程序创建和访问。 但是,此属性必须存储在某个地方 - 并且就在项目上。我相当肯定,如果您调用 GetItem 并枚举项目上的每个属性,您将能够访问自定义道具。

    需要注意的重要一点是,这绝对是一个不受支持的场景。将来设计可能会发生变化,这种情况可能会破裂。我绝对不会在生产环境中访问邮件应用程序之外的自定义属性。

    【讨论】:

    • 感谢您的回复。我可以使用 Jason 的答案中的链接访问这些属性。您为什么要在不受支持的场景中调用。如果 MSFT 想要更改存储这些值的位置,则必须想出一种方法来迁移所有 Office 365 应用程序和邮箱上的现有数据,我认为这并不容易。我们在这里不是很安全吗?
    • 我将听从我的同事 Jason(上面已回答)的意见。他有更多信息要告诉你。
    【解决方案3】:
    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);
    

    【讨论】:

      猜你喜欢
      • 2023-01-04
      • 2017-02-09
      • 1970-01-01
      • 1970-01-01
      • 2017-06-25
      • 2019-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多