1、介绍

Etherpad 是一个基于 nodejs 的在线文档编辑器,服务端性能可以得到保证,多个客户端的操作是即时同步的,而且对文档数据提供了存储的支持。

2、运行

命令行进行项目根目录后,运行 /bin/run.sh,项目即可运行到 127.0.0.1:9001,输入 /admin 可进入管理员界面进行配置管理(开启 admin 管理界面需要将 settings.json 中的 users 注释去掉)。在管理员界面修改 settings 后可进行保存和重启。

3、权限控制

默认情况下,一个记事本能被任何人编辑,只要拿到 URL 就可以

要进行权限控制,只有指定的用户才能编辑,接口都是基于 HTTP 的,每个接口都有一个默认参数 apikey,它的值在第一次启动时生成在 APIKEY.txt 中。

2.1、创建用户

请求: http://127.0.0.1:9001/api/1/createAuthorIfNotExistsFor?apikey=7fc8333b224aae0a8dbe6281e9c8224652b451ded5620aef361330cf9325fcb2&name=Michael&authorMapper=7

响应:

{"code": 0,"message": "ok","data": {"authorID": "a.tecfYc0hczapA4JP"}
}

2.2、创建组,因为权限是居于组的,一个组可以有多个用户,可以有多个记事本,组内的用户都可以编辑

请求: http://127.0.0.1:9001/api/1/createGroupIfNotExistsFor?apikey=7fc8333b224aae0a8dbe6281e9c8224652b451ded5620aef361330cf9325fcb2&groupMapper=group1

响应:

{"code": 0,"message": "ok","data": {"groupID": "g.IQChnScQKpJaoNdd"}
}

2.3、创建组内的记事本,需要用到上一步返回的 groupID

请求: http://127.0.0.1:9001/api/1/createGroupPad?apikey=7fc8333b224aae0a8dbe6281e9c8224652b451ded5620aef361330cf9325fcb2&groupID=g.IQChnScQKpJaoNdd&padName=demo&text=hello world

响应:

{"code": 0,"message": "ok","data": {"padID": "g.IQChnScQKpJaoNdd$demo"}
}

2.3、创建 Session,建立用户与组的关系,validUntil 是 session 的有效期,填一个未来的时间即可,authorId 是用户 ID

请求: http://127.0.0.1:9001/api/1/createSession?apikey=7fc8333b224aae0a8dbe6281e9c8224652b451ded5620aef361330cf9325fcb2&groupID=g.IQChnScQKpJaoNdd&authorID=a.tecfYc0hczapA4JP&validUntil=1593403932000

响应:

{"code": 0,"message": "ok","data": {"sessionID": "s.420caf0c3fab1ad123afc11085609e5f"}
}

2.4、修改 settings 开启权限认证

保存后重启,再去访问/p/demo是无法访问的,界面显示 您没有访问这个记事本的权限,这说明权限起作用了,于是要用到之前生成的 sessionID,打开浏览器控制台进行设置

document.cookie = "sessionID=s.420caf0c3fab1ad123afc11085609e5f"

再次刷新,发现还是提示无权限

其实不能直接通过 /p/demo 访问 demo 记事本的,正确的访问方式是 /p/{padId},这里输入 /p/g.IQChnScQKpJaoNdd$demo 就可以访问到 demo 记事本了

注:如果想将这个记事本分享给其他用户,同时进行编辑,需要先创建用户(如果用户不存在),再建立新用户

4、HTTP API

API 提供的基本功能有

  • 创建/删除记事本(pad)
  • 授权/禁止访问记事本(pad)
  • 获取设置记事本内容

API 版本

可以通过 /api 查询当前版本

请求格式

1.8开始,可以通过GET或POST无差别地调用API端点。HTTP请求的格式为 /api/APIVERSION/APIVERSION/APIVERSION/FUNCTIONNAME。根据选择的请求方式(GET/POST),参数可以不同地传递

回应格式

响应是以下格式的有效JSON:

{"code": number,"message": string,"data": obj
}
  • code 返回码

    • 0 一切正常
    • 1 参数错误
    • 2 内部错误
    • 3 没有这样的功能
    • 4 没有或错误的API Key
  • message 状态消息。一切正常,否则包含错误消息
  • data 有效数据

数据类型

  • groupID 字符串,组的唯一ID。格式为g.16RANDOMCHARS,例如g.s8oes9dhwrvt0zif
  • sessionID 字符串,会话的唯一ID。格式为s.16RANDOMCHARS,例如s.s8oes9dhwrvt0zif
  • authorID 字符串,作者的唯一ID。格式为a.16RANDOMCHARS,例如a.s8oes9dhwrvt0zif
  • readOnlyID 字符串,是与记事本的只读关系的唯一ID。格式为r.16RANDOMCHARS,例如r.s8oes9dhwrvt0zif
  • padID 字符串,格式为GROUPIDPADNAME,例如,组g.s8oes9dhwrvt0zif的测试记事本具有padIDg.s8oes9dhwrvt0zifPADNAME,例如,组g.s8oes9dhwrvt0zif的测试记事本具有padID g.s8oes9dhwrvt0zifPADNAME,例如,组g.s8oes9dhwrvt0zif的测试记事本具有padIDg.s8oes9dhwrvt0zif$test

在线协同编辑器Etherpad介绍与使用相关推荐

  1. 在线协作编辑器EtherPad使用说明

    项目中刚好要用到在线协同编辑器的功能,网上找到EtherPad还不错,体验了一番包括 安装部署 配置说明 插件管理 权限控制 样式切换 EtherPad地址:https://github.com/et ...

  2. 介绍一个开源的在线文档编辑器Etherpad

    我记得google doc刚出来的时候让人眼前一亮,今天偶然间发现一个也是支持多人在线编写文档的编辑器Etherpad,很有意思的一个开源项目(据说谷歌发现这个项目很有前途就把它买下来开源出来),我下 ...

  3. 无穷级数求和7个公式_亿图在线公式编辑器使用方法入门篇

    在工作和学习中难免会遇到写公式的时候,简单的公式可以用Word自带的公式编辑器进行编写.若是遇到复杂的公式时,鼠标频繁性的点击和查找又会花费我们很多时间,如何解决快速输入公式的问题,让我们效率变得更高 ...

  4. (视频) 《快速创建网站》 3.2 WordPress多站点及Azure在线代码编辑器 - 扔掉你的ftp工具吧,修改代码全部云端搞定...

    本文是<快速创建网站>系列的第6篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...

  5. ckeditor拖拽添加html,CKEditorCKFinder结合实现在线HTML编辑器

    最近在做一个项目时需要用到在线HTML编辑器,之前做的是用的FreeTextBox,但总感觉不太完善.于是想起了FCKeditor,知道它很强大,但还没用过,于是准备使用FCKeditor. FCKe ...

  6. au如何关闭预览编辑器_在线IDE开发入门之从零实现一个在线代码编辑器

    前言 3年前在AWS re:Invent 大会上AWS 宣布推出 Cloud9, 用于在云端编写.运行和调试代码,它可以直接运行在浏览器中,也就是传说中的 Web IDE.3年后的今天随着国内云计算的 ...

  7. WebRTC与Ace在线代码编辑器合作,实现实时协作编程

    为什么80%的码农都做不了架构师?>>>    日期:2013-5-17  来源:GBin1.com 距离WebRTC真正的应用到一些很酷的应用中还有一段时日,但是即便是这样,很多开 ...

  8. 127.0.0.1 zxt.php_php单文件版在线代码编辑器使用方法

    这篇文章主要介绍了php单文件版在线代码编辑器,个人感觉相当不错,分享给大家,需要的朋友可以参考下 密码加密方式: * md5(自设密码+$ace) //$ace为cdn镜像地址 使用方法: * 1. ...

  9. 7+1 款国产的在线HTML编辑器

    在线HTML编辑器或者是基于浏览器的所见即所得的HTML编辑器广泛用于各种类型网站的文章发布.论坛发贴等功能.例如在oschina网站上发帖.写博客.提交新闻.添加开源软件等处都会用到这种编辑器. 目 ...

  10. 在线HTML编辑器html源码

    介绍: 在线HTML编辑器html源码 功能特点: 高性能代码编辑框 最高支持400万行代码编辑 支持代码高亮 支持代码行数显示 支持代码智能查错 支持代码自动补全 支持字号调节 支持主题切换 支持实 ...

最新文章

  1. mysql 分区_搞懂MySQL分区
  2. 宁波机器人餐厅需要预约吗_拍婚纱照需要预约吗 预约婚纱照需要注意哪些问题...
  3. C语言visual studio警告:取消对NULL指针“p”的引用
  4. java switch 值_Java switch多值匹配操作详解
  5. Android基站定位
  6. 不能将参数转化为lparam_反渗透纯水机是将自来水直接转化为超纯水的装置
  7. 怎样一步步用D3画多曲线
  8. WPF 使用FontAwesome字体图标
  9. crs-4124   Oracle 11gR2 RAC ohasd failed to start 解决方法
  10. Docker+Teamcity+Maven+SVN搭建持续集成环境
  11. MYSQL基础(事务,触发器,函数,过程指令操作)
  12. DM online-远大见未来 大咖讲堂丨大数据+,信息化应用与技术落地
  13. Azure Cosmos DB(Azure 宇宙数据库)--地球已无法阻止微软玩数据库了
  14. arraylist 的扩容机制_ArrayList详解
  15. 11.6 ConfigParser模块
  16. 简单介绍一下用加速度传感器修正角速度传感器(陀螺仪)累计误差的原理
  17. python正态分布拟合_用python拟合正态分布(已开源)
  18. 1124 Raffle for Weibo Followers(map)
  19. MTK OTA更新方法
  20. 安装与配置VMware虚拟机 https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html

热门文章

  1. Dell vostro 3667重装系统
  2. 车道线定位及拟合:直方图确定车道线位置
  3. VNC远程控制服务器卡顿
  4. 磨皮ps教程-庞姿姿
  5. web浏览器显示网站小图标
  6. 模拟器打开开发者模式
  7. 求解-----组合优化问题
  8. win10关闭触摸板自动开启
  9. magick 包: 在R中进行高级图片处理
  10. 系统运维数据存储知识-系统数据误删除恢复