WOPI主机
WOPI主机协议在此位置定义: http://msdn.microsoft.com/en-us/library/hh643135(v=office.12).aspx
有一个很好的概述,在Office开发团队的博客文章中介绍WOPI:http://blogs.msdn.com/b/officedevdocs/archive/2013/03/21/introducing-wopi.aspx
此外,2013年(与2010年相比)的架构情况如下:
http://technet.microsoft.com/en-us/library/jj219437.aspx
回调界面
请注意,WOPI主机必须响应来自OWA的内容的直接呼叫。
建设WOPI主机
所以,对于这篇文章,我们将介绍一个正在工作的WOPI主机,它将利用OWA用于OWA内部部署的显示内容(Word,Excel和PowerPoint)。
发现XML
在〜/ App_Data位置,有一个discovery.xml文件。这是使用OWA服务器中的以下URL检索的。该XML只需要保存到该位置。
http://owa1.wingtip.com/hosting/discovery
该解决方案通过检查此文件构建基于文件类型的正确的完整URL。
上传文件/链接生成
为了测试,您可以使用Upload API上传文件。这将接受多个文件,并返回一个作为链接集合的JSON结果,并为每个文件访问令牌。
Link生成用于生成可用于查看OWA上将从WOPI主机使用的Office文件的完全限定链接。
访问令牌
OWA支持WOPI主机使用访问令牌。请注意,样本使用随机生成的盐值提供文件名的HMACSHA256。
主要接口:
"GET":"api/wopi/files/{name}?access_token={access_token}"//获取文件信息
"GET":"api/wopi/files/{name}/contents?access_token={access_token}"//获取文件流
"POST":"api/wopi/files/{name}/contents?access_token={access_token}"//保存文件信息
实现了这三个接口,基本就ok了。
excel实现:
word在线编辑需要实现Cobalt或FSSHTTP / FSSHTTPB。具体可以参考:https://github.com/thebitllc/WopiBasicEditor
这个也可以参考下:https://github.com/petrsvihlik/WopiHost.
以下是我基于网上代码改的源码:
https://github.com/LonelyCodelang/WOPI