1

谁能指导我如何为 MERN Stack 实施 WOPI?我正在努力实施它。

我在苦苦挣扎:

  • 验证 WOPI PROOF

  • 实现请求标头

4

1 回答 1

4

基本上,根据 WOPI 集成文档,您需要一些基本要素:

  1. 在某些开发域中注册为Microsoft O365 云存储合作伙伴,您将用于开发以及以后可能用于生产。像 *.whatewercompany.com 这样的东西。Microsoft 会将此域列入白名单,以便您可以从该域与 office 在线交谈。
  2. 构建WOPI主机。在您的情况下,这将是后端中的节点应用程序,需要根据WOPI REST API Reference实现不同的 REST 端点。您不需要所有这些,因此只需从简单开始:CheckFileInfo 和 GetFile,它们将为您提供仅查看功能,然后转向更复杂的功能,例如 Lock、Unlock、UnlockAndRelock、RefreshLock 和 PutFile,它们将为您提供编辑功能。我使用 C# 示例实现作为参考 Office-Online-Test-Tools-and-Documentation。我只是在 java 和 Spring Framework 中重写了它,所以我建议采用类似的方法,因为代码很简单,并且确实记录了很多注释和注释。
  3. 开始时尽可能多地参考 WOPI 文档,这将是抽象和复杂的,但是当您开始实现端点时,它将变得越来越有意义,并且在几天的工作中它将开始变得有意义。
  4. 构建 WOPI 主机页面。请参阅构建主机页面。它可以只是另一个返回页面的 nodejs 端点。该页面很简单,它基本上是办公室在线操作 iframe 的主机。在查看 docx 文件的情况下,OFFICE_ONLINE_ACTION_URL 将是 https://word-view.officeapps-df.live.com/wv/wordviewerframe.aspx?WOPISrc=https://wopitest.whatewercompany.com/wopi/files/1&access_token=1234567890 .
  5. 所以在最后一步中,我给了你查看 .docx 文件的 url,但是你需要调用什么 url 来查看 .pptx 或 .xlsx 或编辑它们。这会将您带到 WOPI 发现概念,您可以在其中了解到每个操作的此 url 不同,例如:查看、编辑、editnew 和文档扩展。总而言之,您需要调用WOPI 发现 URL来解析 xml 响应,并根据用户是否要打开 Word 或 PowerPoint 或者是否要在查看或编辑中打开它来动态地从一个 url 切换到另一个。建议将其缓存并每 12 小时刷新一次。
  6. 如果您想增强安全性,您需要验证请求实际上来自在线办公室并且它们已正确签名。这是我上次做的一件事,只是为了让它 100% 与 Microsoft 验证测试兼容,但没有它你的视图和编辑也能正常工作。当您到达此处时,请注意在步骤 4 中的 xml 结尾处,您拥有验证所需的证明密钥。以下是不同语言的一些示例 C#、Java、Python使用证明密钥验证请求是否来自 Office Online,并且在 nodejs 中进行相同操作应该不是一项伟大的任务。
  7. 使用 WOPI 交互式应用程序来测试您的 WOPI 实现,并期待您在那里看到的所有绿色图标。这归结为类似 https://onenote.officeapps-df.live.com/hosting/WopiTestFrame.aspx?WOPISrc=https://wopitest.whatewercompany.com/wopi/files/1&access_token=1234567890 (请注意,这应该返回一些名为 whatewer.wopitest 的文件,该文件将用于验证)。最好你会调用你的主机页面,然后调用这个 url 来验证第一批名为 HostFrameIntegration 的测试。我建议您阅读WOPI 验证应用程序以获得更好的想法。

请注意,我还试图在 git 或其他地方找到示例应用程序,而不是从头开始实施所有内容的过程,但找不到任何看起来不错的东西,最后也没花那么长时间。总而言之,如果您参考示例 C# 应用程序以及我放在这里的 WOPI 文档和步骤,那么您就可以开始了。

于 2018-11-23T12:55:44.613 回答