Google chrome extension 如何在Outlook的Chrome扩展中获取电子邮件元数据(会话ID、类别)

Google chrome extension 如何在Outlook的Chrome扩展中获取电子邮件元数据(会话ID、类别),google-chrome-extension,outlook,office-js,Google Chrome Extension,Outlook,Office Js,背景: 我正在为outlookowa(office和live.com)构建一个chrome扩展。 该扩展为我们的后端提供了一些关于电子邮件的反馈。 同样,我需要电子邮件元数据,如ItemId、Conversation Id。 如何获取上述元数据?对于Gmail,InboxSDK提供了良好的支持,为我们提供了所需的ThreadId。但我不知道如何为OWA做到这一点 我试过的 我已经尝试了以下方法: 这个电话似乎提供了数据。 尝试进行service.svc调用,但我无法确定如何准确地调用它们,因为A

背景:

我正在为outlookowa(office和live.com)构建一个chrome扩展。 该扩展为我们的后端提供了一些关于电子邮件的反馈。 同样,我需要电子邮件元数据,如ItemId、Conversation Id。 如何获取上述元数据?对于Gmail,InboxSDK提供了良好的支持,为我们提供了所需的ThreadId。但我不知道如何为OWA做到这一点

我试过的

我已经尝试了以下方法:

  • 这个电话似乎提供了数据。 尝试进行service.svc调用,但我无法确定如何准确地调用它们,因为API调用失败,出现了身份验证错误

  • 我真的希望office.js能帮上忙,因为我有一个插件,可以通过API调用获取所需的信息。然而,即使我设法加载了office.js,它仍然缺少“上下文”。office.OnReady不会触发

  • 问题:

    利用OWA已经是outlook客户端这一事实,在chrome扩展中以编程方式获取当前电子邮件元数据的方法是什么


    我可以在DOM中的某个地方找到这些数据吗?或者可以使用扩展已经可用的cookie信息对某些MS API进行API调用吗?

    我认为有一些设计考虑因素,可能有一些API/功能被误解,但仍然-您想要做的是可以实现的

    让我们从你尝试过的开始。 js是一个扩展API。它是一个特殊的JavaScript库,允许您通过Office客户端创建的特殊上下文与这些客户端通信。基本上,您可以将其包含到一个网页中,并将您的客户机指向该网页,以便他们可以进行交流。您必须从应用商店侧面加载/或安装Office加载项。这两个选项都需要外接程序清单,您可以在其中定义客户端要调用的端点所以它不是一个随机的JS库,在没有Office上下文的情况下可以正常工作。要显示Office上下文,您必须在Office客户端/或Office web中,并使用Office加载项,该加载项包含Office.js。仅仅停留在这些页面上是不够的

    对于您的#1-auth问题,您会遇到与auth相关的问题,因为您没有针对该API进行身份验证。您必须注册一个应用程序,获取一个OAuth令牌,并调用一些类似API的图形来获取您正在寻找的其他详细信息

    现在,我知道你们只想为web开发一些东西,你们想使用Chrome扩展(可能是GMail已有的扩展)。我会建议一些选择,其中一个不包括这个。我可以想出一些方法来做到这一点

    1-不要使用chrome扩展插件。 Office插件是跨平台的,这意味着它们将与Office web以及Office客户端一起工作。使用此工具,您可以相当轻松地获得所需的数据。考虑使用Office JS框架实现解决方案。但是,这需要激活外接程序,以便您收集数据(它不能在后台运行)并保持激活状态。如果你的Chrome扩展被动地收集数据(考虑隐私吗?)或被动地提供反馈,这可能不是最好的方式

    2-注册一个应用程序以调用Microsoft Graph。 如果您知道要处理哪封电子邮件(基于发件人/主题等),您可以在注册应用程序。若您请求访问用户的邮箱并获得用户的许可,则可以脱机访问用户的电子邮件。有了它,你可以处理你需要的东西,当你认为没问题时(通过检测域名,或者用户打开chrome),你可以通过chrome扩展通知他们。这可以通过几种方法实现,但最简单的方法是我想象中的套接字

    3-仅适用于当前邮件项目 明天所有的UI查询可能都会失败,因为您尝试执行的操作没有文档记录。但是,当您查看特定项目时,URL包含ID。 您可以尝试注册与步骤#2(添加邮件访问范围)相同的应用程序,并在运行时查询该Id的图形以获取该Id。您应该能够从您的chrome扩展启动该查询。那就好像

  • 创建应用程序
  • 当用户使用chrome extension+outlook时-提示进行身份验证
  • 一旦用户验证,保存刷新令牌+访问令牌
  • 从URL获取项目id
  • 使用项目id调用Microsoft Graph,使用访问令牌进行身份验证
  • 项目详细信息应以json格式返回

  • 当用户重新访问outlook域时,您可以使用刷新令牌续订访问令牌。

    找到了至少获取会话Id的方法:中间窗格显示线程列表:Office.js仅在您将其加载到outlook Web加载项中时才能正常工作。具有相应的清单和托管文件。()如果只将Office.js加载到chrome扩展中,它将无法工作。