将 ONLYOFFICE 文档编辑器与 С# 群件平台集成

在本文中,我们会向您展示 ONLYOFFICE 文档编辑器与其自有的协作平台集成

ONLYOFFICE 是一款开源办公套件包括文本文档、电子表格和演示文稿编辑器这款套件支持用户通过文档编辑组件扩展第三方 web 应用的功能可直接应用的界面使用。在之前的几篇文章中,我们向您展示了如何实现这种集成请参考 Node.js  Python 示例)。

在本文中,我们向您展示一个真实的集成案例 ONLYOFFICE 文档编辑器与自协作平台集成

ONLYOFFICE Groups

ONLYOFFICE Groups社区服务器)是一个免费开源协作系统,使用 C# 编写根据 GNU GPL v3.0 分发包括文档和项目管理CRM电子邮件聚合器、日历、用户数据库、博客、论坛、投票、维基和即时通讯工具

ONLYOFFICE Groups 是完整的自托管解决方案的一部分支持用户在自己的服务器上部署功能齐备私人网络办公室。它免费的社区版和企业版企业版具备更多系统管理选项和增强的安全工具,适合更大团队使用

集成清单

如要将 ONLYOFFICE 文档编辑器与协作平台无缝集成所需的最重要权限清单如下

1添加定制代码

2匿名访问权限,用于下载和保存文件这意味着我们的编辑器仅在服务器端与协作平台通信,不涉及客户端的任何用户授权数据(浏览器 cookie

3添加界面按钮

4与协作平台模块(DMSCRM、项目、邮件)集成

5打开一个新页面用于执行脚本添加编辑器

6能够指定文档服务器连接设置

我们看看如何根据这份清单来实施集成

1添加代码

由于 ONLYOFFICE 编辑器是所有 ONLYOFFICE 解决方案的中心元在我们的协作系统中嵌入编辑功能在开始就是开工作的主要部分

此外,ONLYOFFICE 支持用户在社区服务器中添加自定义模块(如自己的 CRM 系统),为添加的模块创建 APIGitHub 有相关示例项目

2匿名访问

我们实施了一个回调处理程序,处理从 ONLYOFFICE 文档服务器到协作平台(即 DMS)的请求。它们之间直接交互不需要浏览器 cookie 等用户验证数据相反,它基于 JWT 技术,使用请求签名验证

文档服务器使用其配置文件中所谓的“密钥” JWT 添加到请求中。之后 DMS 会检查 JWT 密钥是否与其配置中的密钥一致。只有签名验证成功,回调处理程序才会执行请求的操作

如下 JWT 验证请求的处理过程

public class FileHandler : IHttpAsyncHandler
{public override void OnProcessRequest(HttpContext context){using (var receiveStream = context.Request.InputStream)using (var readStream = new StreamReader(receiveStream)){//request bodyvar body = readStream.ReadToEnd();//request datavar data = JToken.Parse(body);var callbackData = data.ToObject<CallbackData>();//request tokenvar jwtString = JsonWebToken.Decode(callbackData.Token, Config.JwtSecret);var jwtData = JObject.Parse(jwtString);if (jwtData == null){throw new ArgumentException("Document Service request token is incorrect");}//request data from JWTcallbackData = jwtData.ToObject<CallbackData>();result = ProcessData(callbackData);context.Response.Write(result ?? "{\"error\":0}");}}...
}

响应应该是

{”error”:0}

根据请求的状态,特定的操作被执行

public string ProcessData(CallbackData callbackData)
{switch (callbackData.Status){case NotFound:case Closed:FileTracker.Remove(callbackData.key);break;case Editing:ProcessEdit(callbackData);break;case MustSave:case Corrupted:return ProcessSave(callbackData);}return null;
}

3添加按钮

最重要的两个操作一定是打开查看和编辑相应是“预览”“编辑”按钮)。我们在界面中实施其他操作按钮则可支持用户执行以下操作

  • 移动
  • 复制
  • 下载可以选择所需的格式
  • 重命名
  • 删除
  • 查看文档的版本历史
  • 设置文件访问权限,包括共享设置为门户网站用户生成链接、阻止/解除阻止文档以及通过电子邮件发送文档。通过电子邮件发送文档是通过与邮件模块集成实现请参考下文)。

4与模块集成

除按钮外,还有一些操作需要文档服务器与其他服务或模块交互。例如,我们通过转换服务在文档管理的几个阶段转换文件,如用户上传、打开或下载文档时。但需要注意的是,因为 Office Open XML 是我们的核心格式,DOCXXLSX  PPTX 文件是会被直接处理,而其他文件格式都会被转换为 OOXML这样做是为了加速文件处理,提互操作性

用户不仅可以在文件管理系统中处理文档我们在之前一篇文章中有详细介绍),可以在 CRM、项目和邮件中进行

 CRM 模块中,用户可以:

  • 将文档附加到 CRM 和案
  • CRM 中直接创建新文档、工作表和演示文稿同样适用于商机和案例
  • 打开编辑或下载附件文档

用户可以从 CSV 文件将联系人批量导入 CRM,也可以将客户数据库导出为 CSV 文件

 “项目”模块中,我们为文档、电子表格和演示文稿建立了一个单独的文件夹(项目文档

用户可以将文档附到项目任务和讨论中可以直接在“项目”模块中创建新文件用户在管理附件文件时,可以对其进行编辑、下载或删除操作

“邮件”模块中,我们是这样实现集成的:除了将本地驱动器中的文档、电子表格和演示文稿附加到邮件之外,用户还可以存储在“文档”模块中的文件添加为附件如果文件大小限制,建议用户发送时使用所需文档链接

在这种情况下,文件链接会插入邮件正文在发送邮件之前,用户需要为所有链接指向的附件文件设置访问权限之后收件人点击邮件中的链接时基于指定的访问权限在线查看器或编辑器中打开文档

ONLYOFFICE 用户收到有文档附件的邮件时,可以

  • 下载附件
  • 在浏览器中查看文件
  • 打开文档、电子表格或演示文稿进行编辑(在这种情况下,如果格式不是 OOXML系统会自动将其转换为 .docx/.xlsx/.pptx 格式,并将其保存到“文档”中)
  • 将文件保存到“文档”,会选择所需的文件

用户可通过“邮件”设置“文档”模块选择任意文件夹电子邮件信息中的所有件都会被自动保存在这个文件夹中

此外,在“CRM”“项目”模块中,我们可以通过 ONLYOFFICE 文档生成工具文档生成器生成报告通过这款工具您无需实际运行文档处理编辑器即可生成文档。它还支持开发人员使用模板自动生成文档,或将数据库中的数据插入文档

5用编辑器打开页面

使用编辑器打开新页面时,会生成初始化配置发送至编辑器的主要参数包括定义文件类型的参数、界面语言 (editorConfig.lang = "en-US")以及每个用户的权限列表,也就是说,我们会检查用户是否拥有相应的权限:包括打开和编辑文执行其他操作表评下载、重命名文件等):

var config = {"document":{"fileType":"docx","info":{"author":"Me","created":"3\/29\/2019 10:06 PM","folder":"My Documents","sharingSettings":[{"permissions":"Full Access","user":"Me"}]},"key":"kouNPg1","permissions":{"changeHistory":true,"comment":true,"download":true,"edit":true,"fillForms":true,"print":true,"rename":true,"review":true},"title":"ONLYOFFICE Sample Document.docx","url":"https:\/\/demo.onlyoffice.com\/demo.docx"},"documentType":"text","editorConfig":{"callbackUrl":"https:\/\/demo.onlyoffice.com\/filehandler.ashx","lang":"en-US","mode":"edit","user":{"id":"9acf7169b737","name":"John Smith"}},"type":"desktop"
}

6连接设置

用户可以基于解决方案指定或不指定文档服务器连接设置

在我们自己托管的 ONLYOFFICE 云服务中,连接设置对用户隐藏,由我们在服务器配置中进行设置

ONLYOFFICE 服务器解决方案的用户可以指定安装 ONLYOFFICE 编辑器的服务器地址。门户管理员可在“设置”页面的“集成”板块进行相关设置

ONLYOFFICE 文档和社区服务器通常会安装在同一台机器上。在这种情况下,您的网络配置可能不允许它们之间使用公共地址收发请求。因此,需要另外两个字段(如上方截图所示)来指定 ONLYOFFICE 文档服务器地址,以便从社区服务器发出和接收内部请

管理员保存设置时,门户和编辑器之间的交互检查,以确保连接正确

如要详细了解 ONLYOFFICE 文档编辑器如何与其他服务集成,请参阅 API 文档

如果您想尝试将 ONLYOFFICE 文档编辑器与协作平台结合使用,并查看其集成情况,您可以在私人服务器上部署 ONLYOFFICE工作区即刻开始免费试用

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/140882.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建 Makefile+OpenOCD+CMSIS-DAP+Vscode arm-none-eabi-gcc 工程模板

Embedded-GCC-Template 第三方资源集合 STM32F407-GCC-Template Arm-none-eabi-gcc MakefileOpenOCDCMSIS-DAPVscode工程模板 一、本次环境搭建所用的软硬件 1&#xff09;Windows or Linux (本文以Windows为主) 2&#xff09;JLink、Daplink、Wch-Link烧录器 3&#xff…

MySQL join原理及优化

MySQL的JOIN原理是基于索引和算法的。在执行JOIN查询时&#xff0c;MySQL会根据连接字段上的索引来查找匹配的记录。 这种算法在链接查询的时候&#xff0c;驱动表会根据关联字段的索引进行查找&#xff0c;当在索引上找到了符合的值&#xff0c;再回表进行查询&#xff0c;也就…

C#中的扩展方法---Extension

C#中扩展方法是C# 3.0/.NET 3.x 新增特性&#xff0c;能够实现向现有类型中“添加”方法&#xff0c;以下主要介绍C#中扩展方法的声明及使用。 1、扩展方法的声明 扩展方法使能够向现有类型“添加”方法&#xff0c;而无需创建新的派生类型、重新编译或以其他方式修改原始类型…

Flink在汽车行业的应用【面试加分系列】

很多同学问我为什么要发这些大数据前沿汇报&#xff1f; 一方面是自己学习完后觉得非常好&#xff0c;然后总结发出来方便大家阅读&#xff1b;另外一方面&#xff0c;看这些汇报对你的面试帮助会很大&#xff0c;特别是面试前可以看看即将面试公司在大数据前沿的发展动向&…

OmniFocus Pro for Mac(GTD时间管理软件) OmniFocus Mac版

OmniFocus Pro 3 for Mac 中文激活版是一款功能强大且灵活的 GTD 时间管理工具&#xff0c;可为您提供无干扰的环境&#xff0c;帮助您可以轻松地从邮件&#xff0c;消息&#xff0c;Safari 和任何其他第三方应用程序中安排任务&#xff0c;编写备注和剪辑信息。您可以快速轻松…

计算机网络:概述

0 学时安排及讨论题目 0.1讨论题目&#xff1a; CSMA/CD协议交换机基本原理ARP协议及其安全子网划分IP分片路由选择算法网络地址转换NATTCP连接建立和释放再论网络体系结构 0.2 本节主要内容 计算机网络在信息时代中的作用 互联网概述 互联网的组成 计算机网络在我国的发展 …

键盘打字盲打练习系列之认识键盘——0

一.欢迎来到我的酒馆 盲打&#xff0c;yyds&#xff01; 目录 一.欢迎来到我的酒馆二.键盘规格三.键盘分区 二.键盘规格 经常看视频&#xff0c;看到别人在键盘上一通干净利索的操作&#xff0c;就打出想要的文字。心里突然来一句&#xff1a;卧槽&#xff0c;打字贼快啊&#…

JavaScript_动态表格_添加功能

1、动态表格_添加功能.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>动态表格_添加功能</title><style>table{border: 1px solid;margin: auto;width: 100%;}td,th{text-align: ce…

期中成绩这样发

数字化时代&#xff0c;成绩查询系统已经成为学校里不可或缺的一部分。老师们需要一种方便、快捷、准确的方式来发布和查询成绩&#xff0c;而学生们则需要一种安全、可靠的方式来获取自己的成绩。那么&#xff0c;如何实现这一目标呢&#xff1f;我来给大家介绍几种简单实用的…

uniapp发行web页面在老版本浏览器打开一片空白

uniapp发行的web页面&#xff08;菜单->发行->网站-PC Web或手机H5&#xff09;&#xff0c;对于一些老的浏览器&#xff08;或内核&#xff09;&#xff0c;打开一片空白&#xff1b; 而在新版本的浏览器中打开却正常。这是因为那些版本较低的浏览器不支持ES6的语法和新…

SpringBoot系列-2 自动装配

背景&#xff1a; Spring提供了IOC机制&#xff0c;基于此我们可以通过XML或者注解配置&#xff0c;将三方件注册到IOC中。问题是每个三方件都需要经过手动导入依赖、配置属性、注册IOC&#xff0c;比较繁琐。 基于"约定优于配置"原则的自动装配机制为该问题提供了一…

用excel计算矩阵的乘积

例如&#xff0c;我们要计算两个矩阵的乘积&#xff0c; 第一个矩阵是2*2的&#xff1a; 1234 第2个矩阵是2*3的&#xff1a; 5697810 在excel中鼠标点到其它空白的地方&#xff0c;用来存放矩阵相乘的结果&#xff1a; 选择插入-》函数&#xff1a; 选中MMULT&#xff0c;…

淘宝天猫京东苏宁1688等平台关键词监控价格API接口(店铺商品价格监控API接口调用展示)

淘宝天猫京东苏宁1688等平台关键词监控价格API接口&#xff08;店铺商品价格监控API接口调用展示&#xff09;代码对接如下&#xff1a; item_get-获得淘宝商品详情 公共参数 请求地址: https://o0b.cn/anzexi 名称类型必须描述keyString是调用key&#xff08;必须以GET方式…

如何准确分析需求

业务驱动的需求思想 要做好软件需求工作&#xff0c;业务驱动需求思想是核心。传统的需求分析是站在技术视角展开的&#xff0c;关注的是“方案级需求”&#xff1b;而业务驱动的需求思想则是站在用户视角展开的&#xff0c;关注的是“问题级需求”。 变更/优化型需求分析任务…

头歌答案--爬虫实战

目录 urllib 爬虫 第1关&#xff1a;urllib基础 任务描述 第2关&#xff1a;urllib进阶 任务描述 requests 爬虫 第1关&#xff1a;requests 基础 任务描述 第2关&#xff1a;requests 进阶 任务描述 网页数据解析 第1关&#xff1a;XPath解析网页 任务描述 第…

通过 Elasticsearch 和 Go 使用混合搜索进行地鼠狩猎

作者&#xff1a;CARLY RICHMOND&#xff0c;LAURENT SAINT-FLIX 就像动物和编程语言一样&#xff0c;搜索也经历了不同实践的演变&#xff0c;很难在其中做出选择。 在本系列的最后一篇博客中&#xff0c;Carly Richmond 和 Laurent Saint-Flix 将关键字搜索和向量搜索结合起…

基于Python实现,调用百度通用翻译API-详解

概述 在工作上需要各个国家语言的翻译方面很多地方用的上。 获取API权限: 登录百度账号,在个人信息界面,包括修改密码、绑定手机、身份人证等 https://api.fanyi.baidu.com/api/trans/product/desktop?req=developer 百度翻译开放平台 在开发者中心:需要开通个人账号…

redis之org.springframework.data.redis.RedisSystemException: Error in execution

背景 在运行某系统时&#xff0c;在测试类向redis中存入某值&#xff0c;然后取出。 一、遇到的问题 报错&#xff1a; org.springframework.data.redis.RedisSystemException: Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionException: …

【算法练习Day47】两个字符串的删除操作编辑距离

​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 两个字符串的删除操作编辑距…

3个ui自动化测试痛点

当我们找工作的时候查看招聘信息发现都需要有自动化测试经验&#xff0c;由此看来测试人员不会一点自动化测试技术都不好意思说自己是做软件测试的。大部分测试人员也都是从使用自动化测试工具、录制回放、测试脚本、开发小工具入门自动化测试的&#xff0c;然后在慢慢的接触 U…