`
xidajiancun
  • 浏览: 492408 次
文章分类
社区版块
存档分类
最新评论

如何整合Office Web Apps至自己开发的系统(一)

 
阅读更多

在前面我的一篇博客中 Office Web Apps安装部署(一),有一张介绍Office Web Apps与其他系统的关系图,

clip_image001

从上述图中,可知实际上Office Web Apps也是可以接入自己开发的系统的。下面介绍一下整合Office Web Apps的一些理论知识。

要想让自己的系统与Office Web Apps整合就一定要清楚一些概念,首先要理解什么是”WOPI”。

WOPI的英文全称是“Web Application Open Platform Interface”,中文名为“Web应用程序开放平台接口协议”。

WOPI协议提供一系列基于web方式的,使文档能在Office Web Apps中查看与编辑的接口服务(Web Service)。

只要web application按照标准,实现了WOPI的接口,那么就可以调用Office Web Apps。例子很多,比如SharePoint,Exchange,SkyDriver,Dropbox集成Office Web Apps。

如果自己做的web应用也实现了相应接口,也是可以调用Office Web Apps的。实现文档的在线编辑查看。

这样比市面上的一些基于ActiveX的在线Office产品有很大的优势。

首先Office Web Apps是基于网页技术,所以是跨平台的,可以在iOS,安卓,WP及PC使用,实现多屏一体。

其次Office Web Apps实现了桌面Office的大部分功能,能在客户机没有安装Office的情况下,实现云端上的文档编辑查看。

下面介绍的内容都是基于http协议下的,https也是类似的。

在WOPI结构中,

我们把存放Office文档的web应用叫WOPI Host或者WOPI Server。

把查看编辑操作Office文档的web应用叫WOPI Client或者叫WOPI applications。

所以,Office Web Apps充当的就是WOPI Client的角色。

SharePoint,Exchange,自己开发的文档管理系统充当的就是WOPI Host的角色。

下图为浏览器,server,client三者的请求顺序及关系:

clip_image002

从上图可知,WOPI Client 向WOPI Server发送了两次请求

1. Tell me about the file

2. Give me the file

所以WOPI client至少要提供两个Web服务。

1. 一个是CheckFileInfo服务

此服务返回的是请求文件的基本信息,WOPI Host以json方式返回给WOPI Client.

服务URI格式一般为

HTTP://server/<...>/wopi*/files/<id>?access_token=<token>

此服务返回的json格式类似为:

复制代码
{

"BaseFileName": "Sample Document.docx", 

"OwnerId": "tylerbutler", 

"Size": 300519,

"SHA256": "+17lwXXN0TMwtVJVs4Ll+gDHEIO06l+hXK6zWTUiYms=", 

"Version": "GIYDCMRNGEYC2MJREAZDCORQGA5DKNZOGIZTQMBQGAVTAMB2GAYA===="

}
复制代码

Json中至少要包括五个属性:BaseFileName, OwnerId, Size, SHA256, 和 Version

BaseFileName: 文件名。

OwnerId: 文件所有者的唯一编号。

Size: 文件大小,以bytes为单位。

SHA256: 文件的256位bit的SHA-2编码散列内容。

Version: 文件版本号,文件如果被编辑,版本号也要跟着改变。

更多参数介绍请参考:http://msdn.microsoft.com/en-us/library/hh622920(v=office.12).aspx

2. 一个是GetFile服务

此服务返回的是请求文件的内容,WOPI host以数据流的方式返回给WOPI Client.

服务URI格式一般为

HTTP://server/<...>/wopi*/files/<id>/contents?access_token=<token>

注意:CheckFileInfo与GetFile服务的URI格式只差了一个/contents,其他地方的格式是没有不同的。这么做是为了让WOPI client可以通过CheckFileInfo服务URI推导出GetFile服务的URI,千万不要别出心裁,写出的服务URI格式破坏了这层关系。

在上述URI格式中,都有一个access_taken身份验证令牌。这个身份验证令牌是必须要有的,WOPI client会把此令牌回发给WOPI Host,由WOPI Host验证当前用户对当前文件的权限。所以实际上Office Web Apps根本不涉及文档的权限管理。

我们在WOPI client上打开一个Office文档的url地址类似如下:

复制代码
http://wopi-app-server.contoso.com/wv/wordviewerframe.aspx?WOPISrc=

http%3A%2F%2Fmy-wopi-host%2Flocal%2Fwopi

%2Ffiles%2F1-Sample%2520Document.docx&access_token=

dc172034-c6f9-4a43-bc3f-d80dd93c1de1
复制代码

这个里面有两个传递参数:WOPISrc和access_token

WOPISrc参数的内容为:http://my-wopi-host/local/wopi/files/1-Sample%20Document.docx

实际上这个是WOPI Host上的CheckFileInfo服务地址。

WOPI client会通过这个地址加上access_token从WOPI host上获取到1-Sample%20Document.docx文件的信息;

并且通过这个地址推导出WOPI Host上的GetFile服务地址,通过GetFile服务获取到1-Sample%20Document.docx文件的内容。

WOPI host上判断什么类型的文件应该怎么用WOPI client打开,WOPI client会提供一个xml文件给WOPI host,这份xml文件叫WOPI Discovery。格式类似如下:

复制代码
<?xml version="1.0" encoding="utf-8"?>

<wopi-discovery>

<net-zone name="external-https">

<app name="Word" favIconUrl="https://wopi-app-server.contoso.com/wv/

resources/1033/FavIcon_Word.ico"

checkLicense="true">

<action name="view" ext="doc" default="true"

urlsrc="https://wopi-app-server.contoso.com/

wv/wordviewerframe.aspx?

<ui=UI_LLCC&><rs=DC_LLCC&><showpagestats=PERFSTATS&>"/>

<action name="view" ext="docm" default="true"

urlsrc="https://wopi-app-server.contoso.com/

wv/wordviewerframe.aspx?

<ui=UI_LLCC&><rs=DC_LLCC&><showpagestats=PERFSTATS&>"/>

……

</app>

……

</net-zone>

</wopi-discovery>
复制代码

如上所述,打开doc文件,应该使用https://wopi-app-server.contoso.com/ wv/wordviewerframe.aspx的url打开。

WOPI host应该获取这份文件一次,以后打开什么类型的文件,调用什么url自己判断。

分享到:
评论

相关推荐

    office web apps整合

    总结来说,"Office Web Apps整合"涉及了Java后端开发、WOPI协议实现、认证集成、文件存储管理、前端展示等多个技术领域,是一个综合性的项目实施过程。通过这样的整合,用户可以在任何有网络的地方,使用任何设备,...

    ASP.net office web apps整合

    ASP.NET Office Web Apps 整合是一项技术,它允许开发者在Web环境下实现Microsoft Office应用程序(如Word、Excel)的功能,让用户可以在浏览器中查看、编辑和协作处理Office文档。这个技术结合了ASP.NET的强大Web...

    Office Web Apps Server

    使用`Import-Module ServerManager`导入模块,接着运行`Add-WindowsFeature`命令,添加一系列Web服务器角色和服务,包括Web服务器、静态内容、应用程序开发等,以满足Office Web Apps Server的基本需求。 完成基础...

    Office Web Apps示例程序

    1. **OWA Host**:这可能是一个自定义开发的Web应用程序,它利用Office Web Apps的API和服务接口,来在用户的Web浏览器中显示和操作Office文档。这个"OWA host"文件可能是一个源代码项目,使用Visual Studio 2012...

    office web apps Service 服务器搭建

    Office Web Apps (OWA) 是一套由微软开发的应用程序,允许用户在Web浏览器中查看、编辑和共同创作Office文档。本文旨在详细介绍如何在Windows Server 2008 R2环境下搭建OWA服务,以便用户可以通过网络访问和编辑...

    Office Web Apps系统调研

    ### Office Web Apps系统调研知识点详解 #### 一、概述 Office Web Apps (OWA) 是一套基于Web的应用程序,能够使用户在Web浏览器中查看、编辑Microsoft Office文档(包括Word、Excel、PowerPoint)。这套系统提供了...

    Office Web App安装与接口开发文档

    接着,在Office Web App服务器上安装IIS和.NET Framework 4.5.2,最后安装Office Web Apps Server并打上补丁SP1,确保系统运行稳定。 二、系统配置与部署 部署完成后,需在Office Web Apps服务器上以管理员身份...

    office365开发指南

    作者在加入微软之前,有相当长的一段时间都是从事与Office平台定制和应用系统开发的工作,最早是做VBA的开发,后来有做过VSTO,这些都是Office 365开发环境搭建的重要组成部分。 其次,Microsoft Graph是Office 365...

    web-apps:ONLYOFFICE Document Server的前端,用于构建程序界面

    该存储库称为web-apps-pro项目信息官方网站: : 代码存储库: : SaaS版本: : 用户反馈和支持如果您对有任何疑问或疑问,请访问我们的官方论坛以找到您的问题的答案: 或者您可以在上询问和回答ONLYOFFICE开发问题...

    ms_office_web_apps:Redmine 插件,用于通过 Microsoft Office Web Apps 在浏览器中查看 Word、Excel 和 PowerPoint 文件

    标题“ms_office_web_apps”所指的是一款针对Redmine项目管理系统的插件,其主要功能是集成Microsoft Office Web Apps,使得用户能够在浏览器环境下查看Word、Excel和PowerPoint等Office文档。这一特性极大地提升了...

    OfficePIA开发库14(支持Office2010)

    描述中的"OfficeRIA"可能是一个误写,通常指的应该是Office Add-ins或者Office Web Apps,而不是RIA(Rich Internet Applications)。不过,我们可以理解为这个开发库可能包含创建RIA类似功能的能力,即开发可以在...

    ASP.NET在线打开Office 文件实例

    Web Apps是由微软提供的一个云端服务,允许用户在浏览器中直接查看和编辑Microsoft Office文档,无需安装本地的Office套件。ASP.NET可以与Web Apps集成,从而在Web应用中提供这种功能。 实现这个功能的关键在于利用...

    用于 Access Web应用开发人员的Microsoft PowerApps简介中文版

    总的来说,Microsoft PowerApps为Access Web应用开发人员提供了一种现代化的、更适应移动和云环境的替代方案,虽然存在一些差异,但通过学习和利用其特性和优势,可以构建出高效且功能强大的业务解决方案。

    Microsoft Office 与 Microsoft SharePoint 的整合应用.pdf

    1. **Office Web Apps**:SharePoint 2010及更高版本内置了Office Web Apps,用户可以直接在浏览器中查看和编辑Office文档。 2. **SharePoint Designer**:通过SharePoint Designer,可以创建自定义列表、视图,并将...

    Office 365 Devguide

    文档为读者提供了一系列关于如何使用Office 365平台进行开发的指导和示例,特别是侧重于Microsoft Graph、Office Add-ins、PowerShell、PowerApps和Microsoft Flow等方面的技术。 首先,文档介绍了Office 365开发的...

    WOPIHoste.zip

    WOPIHoste.zip是一个压缩包,包含用于实现Office Web Apps(OWA)文件在线编辑功能的C#中间件代码。这个中间件是对接微软的在线编辑服务的关键组件,允许用户在Web浏览器中直接查看和编辑Microsoft Office文档,如...

    office03、office07、office10、office13官方卸载工具

    3. Office 2010:在2007的基础上进一步改进,提供更多的在线协作功能,增强了云服务支持,例如SkyDrive(现在的OneDrive)集成,还有Office Web Apps,可以在网页上预览和编辑文档。 4. Office 2013:首次全面支持...

    office 简介关于office的前世今生

    2010年,微软推出了Office Web Apps,让用户可以在浏览器中编辑文档。2013年,Office 365订阅服务问世,提供云端存储、实时协作和跨设备访问等功能。这一变化反映了办公场景的多元化需求。 在提供的文件名称列表中...

    office2003 owc11

    Office 2003 OWC11,全称为Office Web ...总的来说,Office 2003 OWC11是Web开发历史上的一个重要里程碑,它为Web应用带来了桌面级Office应用的功能,但随着技术的发展,现在已经有了更多更安全、更现代的替代选择。

    OWA安装部署

    Office Web Apps Server (OWA) 是由微软开发的一款应用程序,用于提供在线版本的Microsoft Office应用套件,如Word、Excel、PowerPoint 和 OneNote等。用户可以通过网页浏览器访问这些应用程序,实现对文档的查看与...

Global site tag (gtag.js) - Google Analytics