【问题标题】:Add custom headers and retrieve custom header using Microsoft Graph API使用 Microsoft Graph API 添加自定义标头和检索自定义标头
【发布时间】:2017-12-08 09:43:14
【问题描述】:

我目前正在使用 Microsoft Graph API 来检索我的电子邮件、发送新电子邮件和回复电子邮件。

我使用代码授予授权来识别我的用户并访问其信息。

问题

此应用程序允许用户向我们的未付发票的客户发送电子邮件。但是该应用程序使用GET https://graph.microsoft.com/v1.0/me/messages(将$search 设置为客户电子邮件)来检索涉及客户的每封邮件,因此用户可以跟踪其他员工进行的每一次对话。

问题在于能够将电子邮件(从我们的应用程序发送)与其他邮件(从 Outlook 应用程序发送)区分开来。我们希望使用电子邮件标头,它可以被大量邮件服务器接受,并且我们可以过滤搜索结果以告知用户哪些电子邮件来自我们的应用程序。

期望的结果是,例如,我可以像这样调用 Microsoft Graph API:

  1. GET https://graph.microsoft.com/v1.0/me/messages 带有 OData 参数:$search="john.doe@gmail.com"$select=subject,bodyPreviewreceivedDateTime,headers
  2. 然后假设请求已发回200 代码,JSON 输出将是:

注意X-MY-COMPANY-INVOICE,这将是我们让应用知道这是从我们的应用而不是从 Outlook 应用发送的最终目标。

问题

有没有办法使用 Microsoft Graph API 来执行此操作?如果没有,Microsoft 是否计划尽快发布此功能?

问题 2

我愿意接受建议,这是最好的方法还是我会用这种技术直接解决问题?如果是,解决此问题的最佳方法是什么?

【问题讨论】:

    标签: microsoft-graph-api outlook-restapi


    【解决方案1】:

    这是Extensions 的一个很好的用例。您可以使用这些机制将自定义数据附加到元素(消息、事件、用户、组等)。

    Microsoft Graph 提供多种类型的扩展:Extended PropertiesOpen ExtensionsSchema Extension。每个都有自己的一组约束,因此值得审查每个约束以确定哪些最适合您的场景和架构。也就是说,根据您的描述,我怀疑 Schema Extensions 可能最适合这里。

    【讨论】:

    • 谢谢,我正在使用 Graph Explorer 看看它是否能满足我们的需要。事实上,我在想,这种机制是不是只有在 Exchange 协议中才能理解?我的意思是,例如,如果我使用 Gmail 向客户发送带有特定架构扩展名的电子邮件,此信息是否是持久的并且可以在收到同一客户回复我邮件的邮件时检索回来?还是这是特定于 Exchange 的?
    • 它们存储在邮箱中,因此不会发送给收件人。如果要链接响应,可以使用 conversationId 属性连接点。您还可以使用/delta 处理传入的消息,如果有响应进来,并在后台添加您的扩展数据。
    • 太好了,我想出了一个解决方案,我将“通知”(例如,在 html 中显示的邮件上的可见标签以通知用户)应用程序用户收到的电子邮件是对话的一部分由于singleValueExtendedProperties 自定义属性和一些算法的结合,从我们的应用程序发送的电子邮件开始标识并标记它们!非常感谢:)
    • 刚刚发现他们是working on。我已经使用扩展成功创建了自定义x-my-company,但我无法获取它(这是beta endpoint 唯一缺少的属性)。将使用此解决方案,希望他们将 internetMessageHeaders 发送到 v1!
    猜你喜欢
    • 1970-01-01
    • 2012-04-08
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 2018-07-25
    • 2013-11-13
    • 1970-01-01
    相关资源
    最近更新 更多