当前位置: 首页 > news >正文

onlyoffice连接器(connector)开发使用精讲 二次开发 深入开发【一】

        连接器是onlyoffice调用web api的一个基础工具,可以方便开发者或者用户与业务系统结合使用web功能。

        关于connector官方说明文档在这里:Automation API - ONLYOFFICE Api Documentation

        注意:该功能针对开发者版、企业版,社区版常规不支持此功能。因此这里为了方便交流学习,给开发者提供一个演示环境。如果你有疑问或者其他需求,可以联系我,具体我会放到最后。

http://47.94.91.67:10100/web-apps/apps/api/documents/api.js

一、关于连接器(connector)的初步介绍

        对于绝大部分开发者而言,很多情况下都是简单的操作一下文档,做一些和业务系统相关操作的功能,使用到:callCommand 、executeMethod、attachEvent、detachEvent这四个核心快api模块。我本人用的比较深入,也基本只用到上面4个,本教程范围也就是上面四个核心快。

二、核心快初步说明

        1、callCommand()。基础api调用模块,用于组合并执行复杂api或者自定义代码,100%的情况你都需要使用。文档在这:Overview - ONLYOFFICE Api DocumentationONLYOFFICE Developer APIicon-default.png?t=N7T8https://api.onlyoffice.com/officeapi/basic

        2、executeMethod()。直接执行某个api,它与callCommand的区别是:callCommand是自己写代码执行也就是执行function(){xxxxx}方法体,executeMethod执行的只是某一个方法。后面的Demo中将会有更直观的展示,一看就懂。文档在这:executeMethod - ONLYOFFICE Api DocumentationONLYOFFICE Developer APIicon-default.png?t=N7T8https://api.onlyoffice.com/plugin/executemethod

        3、attachEvent、detachEvent也就是绑定、解绑事件,这个比较常规。文档在这:Events - ONLYOFFICE Api DocumentationONLYOFFICE Developer APIicon-default.png?t=N7T8https://api.onlyoffice.com/plugin/events

三、示例与详解

/**
* 全局初始化连接器
*/
var connector = docEditor.createConnector()

callCommand介绍

        callCommand执行的是自定义的方法体,比如:增加批注,先查找文档AddComment - ONLYOFFICE Api Documentation,然后参照使用红框部分即可【图1】:

// Asc.scope为入参,需要传入方法体的对象
Asc.scope.text = "Hello world!"; connector.callCommand(function() {var oDocument = Api.GetDocument();var oParagraph = oDocument.GetElement(0);oParagraph.AddText(Asc.scope.text);Api.AddComment(oParagraph, "ONLYOFFICE for developers", "Jane", "uid-1");}, function() { console.log("执行完成回调"); });

图1

callCommand结束,更多的api开发者可以自行查看,使用方法都是一样的:AddComment - ONLYOFFICE Api Documentation

executeMethod介绍

        executeMethod是直接执行某个方法,可以执行的方法在这:executeMethod - ONLYOFFICE Api Documentation

connector.executeMethod ("AddComment", [{"UserName": "John Smith","QuoteText": "text","Text": "comment","Time": "1662737941471","Solved": true,"Replies": [{"UserName": "Mark Potato","Text": "reply 1","Time": "1662740895892","Solved": false}]}
], function (comment) {console.log (comment)
});

        参数解释,AddComment【方法名】,[arg1, arg2, arg3..........]该方法使用的数使用输入传入,回调方法。实际调用为:

function AddComment(paramObj){return comment;
}var comment = AddComment({"UserName": "John Smith","QuoteText": "text","Text": "comment","Time": "1662737941471","Solved": true,"Replies": [{"UserName": "Mark Potato","Text": "reply 1","Time": "1662740895892","Solved": false}]});

executeMethod结束

        

attachEvent、detachEvent介绍

        attachEvent、detachEvent就是常规的前端事件绑定,关于这一块就比较简单理解了,只能用Demo展示一下,这里不深入讲解。具体的需要开发者自行使用。可以绑定的事件在这:Events - ONLYOFFICE Api Documentation

/**
* 绑定事件
*/
connector.attachEvent("onAddComment", function(){console.log("event: onAddComment");
});/**
* 解绑事件
*/
connector.detachEvent("onAddComment");

attachEvent、detachEvent结束

四、总结

        callCommand是100%情况都需要使用到的。attachEvent、detachEvent部分情况会使用。executeMethod因为只执行单个方法,用的地方就少一些,大部分都是用callCommand代替。

        连接器简单使用就是上面这些,但是实际用法比这个深入得多,后续会开【第二期讲解】。

五、交流与联系

        我本人主要研究实现的api和源码,用以开发自己的独立版本系统,实现更多的实用功能,如果你需要独立部署也可以V我,也希望和大家多多交流:【cao_rui_jian_xiong】

相关文章:

onlyoffice连接器(connector)开发使用精讲 二次开发 深入开发【一】

连接器是onlyoffice调用web api的一个基础工具,可以方便开发者或者用户与业务系统结合使用web功能。 关于connector官方说明文档在这里:Automation API - ONLYOFFICE Api Documentation 注意:该功能针对开发者版、企业版,社区版常…...

VAuditDemo安装漏洞

目录 VAuditDemo安装漏洞 index.php header.php config.php lib.php install.php 分析结果 漏洞利用 第一步:删除install.lock文件,访问 install.php 抓包 第二步:通过审计构造payload 第三步:修改抓包请求内容&#x…...

算法学习-2024.8.16

一、Tensorrt学习补充 TensorRT支持INT8和FP16的计算。深度学习网络在训练时,通常使用 32 位或 16 位数据。TensorRT则在网络的推理时选用不这么高的精度,达到加速推断的目的。 TensorRT对于网络结构进行了重构,把一些能够合并的运算合并在了…...

ansible环境搭建

任务背景 公司的服务器越来越多, 维护⼀些简单的事情都会变得很繁琐。⽤ shell脚本来管理少量服务器效率还⾏, 服务器多了之后, shell脚本⽆ 法实现⾼效率运维。这种情况下,我们需要引⼊⾃动化运维⼯具, 对 多台服务器实现⾼效运维。 任务要求 通过管理服务器能够…...

在线陪玩App小程序源码开发:技术挑战与解决方案

随着互联网技术的飞速发展和用户需求的多样化,在线陪玩App小程序逐渐在游戏娱乐领域占据了一席之地。这类小程序不仅为用户提供了丰富的娱乐体验,也为开发者带来了新的机遇。然而,在开发过程中,数据处理、性能优化、系统扩展性和安…...

iOS profiles文件过期如何更新

创建发布用的Certificates 首先进入到https://developer.apple.com/account页面选择【证书】进入【新建证书】页面 点击【新建证书】按钮: 根据需求选中对应的【证书类型】,我选的是【Apple Distribution】, 开发者证书选择【Apple Devel…...

C/C++|C++标准库 string 流之std::ostringstream 和 std::istringstream 流

我们在 sstream 头文件中定义了三个类型来支持内存IO(ostringstream\istringstream\stringstream),这些类型可以向 string 写入数据,这里我们主要讲: std::ostringstream 和 std::istringstream( C Primer 中文版第五版) 以上的两个类型都继…...

Java-Redis

文章目录 基础基础内容使用场景/功能常见数据类型下载与安装可视化(多个)发布订阅功能事务两种持久化主从模式哨兵模式集群模式Cluster缓存淘汰过期删除缓存一致 Cache Aside缓存击穿缓存穿透缓存雪崩 实战内容配置文件配置Redis的BeanRedis为什么这么快…...

requests快速入门

1 安装requests库 如果你还没有安装requests库,可以通过pip安装: pip install requests 2 GET请求 GET请求通常用于从服务器请求数据。使用requests.get()函数可以发送GET请求。 2.1 基本使用 import requests url https://api.example.com/da…...

企业高性能web服务器——Nginx

# 企业高性能web服务器 1、Nginx 编译安装 1.1 编译安装 Nginx 这里下载nginx-1.24.0.tar.gz和nginx-1.26.1.tar.gz可以在官方网站上下载:https://nginx.org/en/download.html 示例:nginx-1.24.0.tar.gz #提前将编译安装出现问题的安装包下载好&…...

FreeSWITCH Java ESL Client Demo

1简介 在开启Java ESL Client编程之前,请先阅读《FreeSWITCH权威指南》学习什么是FreeSWITCH Event Socket。 Java连接FreeSWITCH的ESL可以采用两种模式:inbound和outbound。 Inbound模式:Java应用作为客户端主动连接到FreeSWITCH的内置TCP…...

手摸手系列之Linux下根据自己的jdk包构建docker镜像

项目在本地导出PDF文件正常,部署到Linux服务器docker容器中导出就报错,百撕不得姐,经查,docker依赖的openjdk版本是8u112版本,而我本地是8u421版本,那就升级jdk的小版本试试。 在docker的中央仓库[点我直达…...

tomcat相关

一、部署安装tomcat 在10和20上安装tomcat [root10 ~]# dnf install java-1.8.0-openjdk.x86_64 -y #安装java环境 [root10 ~]# tar zxf apache-tomcat-9.0.93.tar.gz -C /usr/local/ #安装并启动tomcat [root10 ~]# ln -s /usr/local/apache-tomcat-9.0.93/ /usr/local/tomcat…...

20240821给飞凌OK3588-C的核心板刷Rockchip原厂的Buildroot并启动

20240821给飞凌OK3588-C的核心板刷Rockchip原厂的Buildroot并启动 2024/8/21 15:22 viewproviewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508$ viewproviewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508$ ./build.sh lunch 3. rockchip_rk3588_evb7_…...

服务优雅上下线优雅停机

一、目的 服务发生线程锁住,需要下线服务时,保证请求中的接口不受影响,执行完后,再下线服务 二、步骤 *kill -15时执行改钩子函数 优雅停机 1.当线程锁住 2.运维那边监控到,然后进行kill -15 进程ID 3.代码这边监…...

什么是生信分析?深入探讨生物信息学的技术、方法与广泛应用

介绍 生物信息学分析,简称生信分析,是一个结合了生物学、计算机科学、信息学和统计学的多学科领域,旨在处理、分析和解释海量的生物数据。随着现代生物技术的发展,尤其是高通量测序(Next-Generation Sequencing, NGS&…...

JavaScript判断数组是否包含某个值

目录&#xff1a; 1.for循环/while循环2.数组的some方法3.数组的filter方法4.array.indexOf5.array.findIndex6.array.includes7.array.find8.set中的has方法 1.for循环/while循环 for循环: function contains(arr, val) {for (var i 0; i < arr.length; i) {if (arr[i] …...

C# - 如何在Windows系统中通过C#添加新的PATH条目至系统和用户环境变量

编写系统环境变量-->系统变量-->path-->添加新的列 01:直接写 using Microsoft.Win32; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace updatesystempath01 {class Program{stati…...

Unity | Shader基础知识(第二十二集:两次渲染)

目录 一、前言 二、“渲染两次” 三、本次成品介绍 四、第一次渲染代码 五、第二次渲染代码 六、截止目前的所有代码 七、调整代码 八、总结 一、前言 之前一直讲的shader文件中&#xff0c;都只写了一次CG代码。 为了大家对这部分的整体理解&#xff0c;我们这次渲…...

鸿蒙Harmony实战开发:Arkts构造函数

构造函数 类声明可以包含用于初始化对象状态的构造函数。 构造函数定义如下&#xff1a; constructor ([parameters]) {// ... } typescript 如果未定义构造函数&#xff0c;则会自动创建具有空参数列表的默认构造函数&#xff0c;例如&#xff1a; class Point {x: numbe…...

ElevenLabs泰米尔文语音API调用性能突降?紧急修复方案:更换Region为ap-southeast-1后P95延迟从2.4s降至380ms(附curl压测脚本)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs泰米尔文语音API性能突降事件全貌 2024年9月中旬起&#xff0c;多位集成ElevenLabs泰米尔文&#xff08;ta-IN&#xff09;语音合成服务的开发者报告异常延迟与高失败率——典型请求响应时间…...

零代码物联网实战:用WipperSnapper与Adafruit IO快速采集模拟与I2C传感器数据

1. 项目概述与核心价值在嵌入式开发和物联网项目的起步阶段&#xff0c;很多开发者&#xff0c;尤其是刚接触硬件的朋友&#xff0c;常常会卡在两个看似基础却至关重要的环节上&#xff1a;如何让微控制器“感知”到物理世界的连续变化&#xff0c;以及如何高效、可靠地读取那些…...

3个思维转变:用Obsidian Homepage打造你的第二大脑控制中心

3个思维转变&#xff1a;用Obsidian Homepage打造你的第二大脑控制中心 【免费下载链接】obsidian-homepage Obsidian homepage - Minimal and aesthetic template (with my unique features) 项目地址: https://gitcode.com/gh_mirrors/obs/obsidian-homepage 你是否曾…...

MobaXterm远程桌面实战:在Ubuntu上配置与连接RDP服务

1. 为什么选择MobaXterm连接Ubuntu远程桌面 作为一名常年和Linux服务器打交道的开发者&#xff0c;我深知纯命令行操作有时会遇到效率瓶颈。特别是当需要处理图形界面应用或者进行复杂配置时&#xff0c;SSH终端就显得力不从心了。这时候&#xff0c;RDP远程桌面协议就成了救命…...

分享一些常见的SQL计算面试题

代码都是基于mysql实现&#xff0c;如果小伙伴们有其他的思路欢迎留言~ 1.行列转换2.分组求top-n3.连续登录问题&#xff08;包括日期可间断和不可间断&#xff09;4.找连续出现3次及以上的数字5.直播间同时在线人数统计1.行列转换 表tb1&#xff1a; 表tb2&#xff1a; 行转…...

ROFL-Player:打破英雄联盟回放观看壁垒的革命性工具

ROFL-Player&#xff1a;打破英雄联盟回放观看壁垒的革命性工具 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 你是否曾经因为游戏版本…...

华硕笔记本终极优化神器:GHelper完整使用教程

华硕笔记本终极优化神器&#xff1a;GHelper完整使用教程 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expertbook…...

OpenHarmony Rust开发实战:GN构建配置与FFI互操作指南

1. 项目概述&#xff1a;为什么要在OpenHarmony里搞Rust&#xff1f;最近在折腾OpenHarmony开发板&#xff0c;想把一些对性能和安全性要求比较高的模块用Rust重写&#xff0c;结果发现官方文档里关于Rust构建的部分讲得比较零散。踩了一圈坑之后&#xff0c;我决定把OpenHarmo…...

OpenRGB:打破RGB灯光控制壁垒的开源统一解决方案

OpenRGB&#xff1a;打破RGB灯光控制壁垒的开源统一解决方案 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgrammer1/OpenRGB. Releases ca…...

Postal邮件服务器与AI助手集成:MCP协议实现与安全实践

1. 项目概述&#xff1a;一个连接Postal与MCP的桥梁最近在折腾一些自动化工作流和智能体应用时&#xff0c;遇到了一个挺有意思的需求&#xff1a;如何让我那些基于Claude或GPT的AI助手&#xff0c;能够直接、安全地访问和操作我自建的邮件服务器数据&#xff1f;比如查询特定邮…...