'Word as a Service' 可以通过 MS Graph API 实现吗?

Is 'Word as a Service' possible via MS Graph API?

我找到了部分拼图,但不是全部。

使用 Graph APIs,当用户在我自己的网络应用程序中选择文档时,我可以:-

  1. 在他们的 OneDrive 帐户中创建一个新的临时文件夹
  2. 将 my.docx 文件上传到此位置
  3. 为 my.docx
  4. 获取 url
  5. 在新选项卡中打开 URL,加载 Office 365 的 MSWord 编辑器(或再次单击后查看器和编辑器)

这里有点棘手。我怎样才能将编辑后的内容放回我的 Web 应用程序过去存储这些文档的位置?

理论化,我可以:-

  1. 为我创建的新文件夹创建webhook订阅
  2. 实施 webhook 侦听器(和验证)服务

当监听器收到文档的 'update' 通知时:-

  1. 调用下载(内容)API,或从 driveItem 元数据,从@microsoft.graph.downloadUrl
  2. 下载
  3. 将它保存到我的网络应用程序中我想要的位置

对我来说,这听起来像是会有很大的延迟。 Webhook 订阅通常会发送批量更改,而且频率看起来不确定。在编辑会话期间对每个单独的保存操作进行版本控制当然不是很好。

我是否错过了一些更明显的 Word 即服务路径?即另一个 API 或 API 的混合?

我考虑过但尚未确定范围的备选方案:在我自己的 Web 应用程序中实施 WOPI 或 WebDav。

今天 OneNote and Excel 是唯一通过 Microsoft Graph 中公开可用的 REST API 公开 API 的办公室 "document clients"。
我知道的唯一其他 "publicly available options" 是:

听起来您使用 OneDrive 只是为了利用其对 MS-WOPI protocol 的内置支持。 WOPI 基本上是一个增强的 WebDav 界面,Office 使用它来处理远程文档(即存储在 OneDrive、Box、DropBox 等上的文件)。

您的解决方案大体上很好,而且很容易编排。您完全可以使用 webhooks 来订阅文件的更改。您可能需要应用程序中的某种机制在它们 "done" 时通知您的系统,以便您可以在之后清理文件。

如果您想要更强大的解决方案,则需要查看 WOPI。实施 WOPI 将允许您将这些文件永久保留在您的系统上。 Office Online 将使用 WOPI 接口与您的存储系统和就地 open/save/edit 文件对话。

请记住,实施 WOPI(或与此相关的任何协议)通常不是一件容易的事。在使用之前,您还需要让 Office 验证您的最终解决方案并将其列入白名单。有关此过程的详细信息以及如何请求访问权限,请访问 Microsoft Cloud Storage Provider Program 网站。