WOPI Nodejs、Express、React 集成

Dex*_*nag 1 node.js express reactjs ms-wopi

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

我正在努力的是什么:

  • 验证 WOPI 证明

  • 实施请求标头

Dal*_*nic 5

基本上,根据 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 框架重写了它,所以我建议采用类似的方法,因为代码很简单,并且确实记录了很多注释和注释。
  3. 一开始就尽可能多地参考 WOPI 文档,它会是抽象和复杂的,但当您开始实现端点时,它会变得越来越有意义,并且在几天的工作中它将开始有意义。
  4. 搭建WOPI主页。请参阅构建主页。它可以只是返回页面的另一个 Nodejs 端点。该页面很简单,它基本上是 Office 在线操作 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 每个操作都不同,例如:查看、编辑、编辑新文档和扩展文档。总而言之,您需要调用WOPI 发现 URL解析 xml 响应,并动态地从一个 URL 切换到另一个 URL,具体取决于用户是否想要打开 Word 或 PowerPoint,或者是否想要在查看或编辑中打开它。建议缓存并每 12 小时刷新一次。
  6. 如果您想增强安全性,您需要验证请求是否确实来自 Office Online 并且签名正确。这是我最后做的事情之一,只是为了使其 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 文档和步骤,那么您就可以开始了。