1. 01. 快速开始
石墨文档中台-开发文档
  • 1. 适用范围
  • 00. 概述
    • 石墨文档中台能做什么?
    • 三种典型的业务接入场景
    • 石墨文档中台支持哪些格式?
  • 01. 快速开始
    • 基本概念
    • 场景一:10 分钟创建预览文件
    • 场景二:10 分钟创建协同编辑文件
  • 02. 鉴权与安全
    • 整体概述
    • 签名凭证 Token
    • 签名凭证 Signature
  • 03. 文件预览
    • 整体概述
    • 如何预热预览缓存
    • 如何防盗链
    • 常见问题处理
  • 04. 文件编辑
    • 整体概述
    • 协同文档权限设计
    • 协同文件保存与更新机制
    • 协同文件复制与删除
  • 05. 文件导入导出
    • 整体概述
    • 常见问题处理
  • 06. 石墨前端 API
    • 整体概述
    • 公共 API
      • 公共处理方法
      • 顶部栏定制 HeaderBars
    • 编辑器 API
      • 轻文档
      • 传统文档
      • 表格
      • 幻灯片
      • 表单
      • 应用表格
  • 07. 石墨后端 API
    • 整体概述
    • 错误码说明
    • 文件-预览 API
      • 访问预览文件
      • 创建文件预览缓存
    • 文件-协同编辑文件管理 API
      • 访问协同编辑文件
      • 创建协同文件
      • 创建协同文件副本
      • 删除协同文件
    • 文件-导入导出 API
      • 文件导入
        • 文件导入说明
        • 创建导入任务
        • 获取导入进度
        • 创建导入任务(旧版)
        • 获取导入进度(旧版)
      • 文件导出
        • 文件导出流程
        • 创建导出任务
        • 获取导出进度
    • 文件-表格文件(Excel) API
      • 表格接口参数说明
      • 获取表格内容
      • 获取表格中的评论数
      • 更新表格内容
      • 追加表格内容
      • 删除表格行
      • 新增表格工作表
    • 文件-文稿文件(Word) API
      • 文稿书签说明
      • 读取文稿书签内容
      • 替换文稿书签内容
    • 文件-文档文件(类 Markdown) API
      • 获取文档中的评论列表
    • 文件-应用表格文件(多维表格)API
      • 应用表格列及单元格值结构
      • 应用表格接口调用规则
      • 获取数据表列表
      • 创建数据表
      • 获取字段列表
      • 创建字段
      • 更新字段
      • 删除字段
      • 新增行
      • 获取单行
      • 更新行
      • 删除行
    • 文件-获取额外信息 API
      • 获取文件的纯文本内容
      • 文件纯文本字数统计
      • 获取文件的历史列表
      • 获取文件的版本列表
      • 获取文件内容中所有的 @ 人信息列表
      • 还原文件历史版本
    • 系统管理 API
      • 应用管理
        • 获取应用详情
        • 更新应用回调地址
      • 用户席位管理
        • 用户席位状态说明
        • 获取用户列表和席位状态
        • 激活用户席位​
        • 取消用户席位​
        • 批量设置用户席位
    • 其他 API
      • 上报事件
      • 创建行为历史
      • 推送文件内全部的用户
      • 推送用户全部的 websocket 连接
    • 获取行列表
  • 08. 回调接口(你的应用需实现的接口)
    • 整体概述
    • 文件信息
      • 文件权限说明
      • [重要] 获取文件元信息-协同文档
      • [重要] 获取文件元信息-预览文档
      • 获取当前用户的文件列表
      • 获取文件的协作者列表
      • 获取接入方指定文件的完整访问地址
      • 获取文件元信息-协同文档自动任务(admin)
      • 根据指定用户获取文件元信息-协同文档(admin)
    • 用户信息
      • 批量获取用户信息(admin)
      • [重要] 获取当前用户信息
      • 获取当前用户所在团队信息
      • 获取指定用户信息
      • 获取用户水印信息
      • 获取用户部门路径
      • 批量获取用户信息
    • 团队和部门
      • 特殊部门 ID 说明
      • 获取团队下的成员列表
      • 获取部门信息
      • 获取部门的下级部门节点
      • 获取部门下的成员分页列表
    • 搜索功能
      • 获取与文件相关的用户列表
      • 获取与文件相关的文件列表
      • 按关键字搜索文件和用户列表
    • 事件推送
      • 整体概述
      • 评论(Comment)
        • 轻文档
          • 添加评论
          • 删除评论
          • 结束评论
          • 对于评论的回复评论
        • 表格
          • 添加评论
          • 删除评论
          • 结束评论
          • 对于评论的回复评论
        • 传统文档
          • 对于评论的回复评论
          • 添加评论
          • 更新评论
          • 删除评论
        • 幻灯片
          • 添加评论
          • 删除评论
          • 结束评论
          • 对于评论的回复评论
        • 应用表格
          • 添加评论
          • 对于评论的回复评论
          • 删除评论
      • 讨论(Discussion)
        • 轻文档
          • 发送讨论消息
      • 提及(MentionAt @ 人)
        • 轻文档
          • 在评论中 at
          • 在讨论中 at
          • 在正文中 at
        • 表格
          • 在评论中 at
          • 在正文中 at
        • 传统文档
          • 在评论中 at
          • 在正文中 at
        • 应用表格
          • 在评论中 at
          • 在正文中 at
      • 日期提醒 (DateMention)
        • 轻文档
          • 创建
          • 修改
          • 删除
        • 表格
          • 创建
          • 修改
          • 删除
        • 传统文档
          • 创建
          • 修改
          • 删除
      • 文件内容更新 (FileContent)
        • 文件内容更新
      • 文档协作者协同状态变化 (Collaborator)
        • 文档协作者协同状态变化
      • 文件版本 (Revision)
        • 版本
      • 系统事件 (System)
        • 系统事件
      • 回调请求错误(实验性)
        • 回调请求错误
  • 09. 核心模型
    • 你的应用如何设计应用(app)模型?
    • 你的应用如何设计文件数据模型?
    • 你的应用如何设计通讯录模型?
    • 你的应用系统如何设计文件权限模型?
  • 10. 典型场景方案
    • 云盘场景
    • IM 场景
    • 示例代码仓库
  • 11. 常见问题
    • 访问接口提示 Signature
    • 文件预览或导入报错
    • 首次接入 SDK 报错
    • 文档预览如何做防盗链
    • 复制粘贴、全屏操作不正常
    • 如何实现文档模板功能
    • 文档内容何时保存
    • 移动端不支持 blob 协议导致预览失败
    • 如何实现文件重命名
    • 如何通过接口修改文档内容
    • @人员时如何直接跳转至对应锚点
  1. 01. 快速开始

基本概念

一、基础名词释义#

角色 / 概念说明
用户使用你的应用的用户,比如用户需要通过你的 OA 系统编辑或者预览 Excel 表格。
你的应用后端你的应用后端服务,可以是 Java、Go、PHP、Python 实现,主要用提供你的平台前端业务需要的后端接口,同时也负责和石墨文档中台进行数据互通。
你的应用前端你的应用前端代码,可以是 Web 或者 HTML5。
你的应用回调 URL 地址石墨文档中台需要通过这个 URL 去请求你实现的回调接口,比如 https://your-endpoint-url.com
石墨文档中台石墨文档中台服务,提供了文件的预览和编辑等核心能力。
石墨文档中台域名部署在你的机房的私有化版本石墨中台的访问域名,比如:https://weboffice-shimo-local.com

1.1 整体架构#

二、用户(User)#

用户是你业务系统的实际用户,也是最终使用文档能力的人,比如打开文档、编辑文档、预览文件、评论或协作的人。
从系统关系上看,用户不是直接“对接石墨”,而是始终在你的业务系统产品里发起动作。用户看到的入口、页面、按钮、权限提示,首先都属于你的业务系统。

三、文件(File)#

文件首先是你应用的一个内容实体,在你的业务系统中定义,每个文件拥有的唯一的 fileId(文件 ID) 。它是一个标注类型的的文档对象,可能是表格(Excel)、文稿(Word)、幻灯片(PPT)、应用表格(多维表格)等。

四、应用(App)#

应用是你向内部或外部用户提供服务的载体,也是你调用石墨文档中台所提供的开放能力的载体。
应用是指的通过石墨文档中台下发的 AppID/AppSecret 来唯一区分,一个应用的数据可能会在你的多个内部业务系统之间共享。比如说你的在你的知识库平台中创建了一个文档,这个文档同时可以在你的 IM 中预览。这个例子中知识库和 IM 是你的两个内部业务系统,但是他们都同属于一个应用(App)。
不同应用在石墨文档中台中的数据是逻辑隔离的,它们的数据是无法互相联通的。
你的应用主要承载的逻辑是:
用户是谁
文件属于哪个用户
哪些用户可以阅读文档、哪些用户可以修改文档
文档行为如何嵌入现有业务流程
“你的应用”包含“你的应用前端“以及”你的应用后端”两部分实现。
你的应用前端:
通常由 HTML、JavaScript 及其上层框架构成,负责承载业务交互入口,并在获得后端下发的接入参数后,通过 JSSDK 或 iframe 将石墨编辑器、预览页集成到现有页面中。
你的应用后端:
通常基于 Java、Go、PHP、Python 等服务端技术栈实现,负责签名凭证生成、业务身份透传、文件元信息与权限模型维护,以及文档中台回调接口和服务端 API 的对接。
前端关注的是文档能力在产品界面的嵌入与交互承载,后端关注的是鉴权、数据编排、权限控制与系统间通信。二者共同构成从业务系统对接石墨文档中台的技术底座。

4.1 你的应用前端#

你的应用前端是用户真正接触到的界面层,比如 Web 页面、管理台、知识库页面、云盘页面或业务系统里的文档详情页。
它的核心职责是:
给用户提供打开文档的入口
从你的业务系统后端获取本次打开文档所需的参数
使用石墨 JS SDK 或 iframe 把文档能力嵌入页面
承载文档编辑器或预览页
呈现错误、只读状态、无权限状态
它不负责:
存储用户对文件的权限数据
存储业务文件元信息数据
可以把你的业务系统前端理解成“用户与文档能力之间的展示层和接入层”。

4.2 你的应用后端#

你的应用后端是整个对接方案里的控制中枢,也是最关键的一层。
它的核心职责是:
用户数据管理:保存和维护用户基本信息、组织架构信息。
文件信息管理:保存和维护文件权限信息、文件基本元信息(比如文件名、文件创建用户 ID、文件创建时间等)。
实现回调接口:实现文档中台所需的回调接口,在回调时告诉文档中台“当前用户是谁、当前文件是什么、当前权限是什么”
调用石墨文档中台的服务端 API:从石墨文档中台获取必要的文档编辑器相关信息(比如获取单元格内容、获取文件的纯文本内容)、将文件导出为其他格式等。

四、回调(Callback)#

回调接口是你的应用后端需要实现、由石墨主动来调的一组 HTTP 接口。石墨文档中台采用无状态架构——它不存你的用户表、文件表、权限表;用户每次打开、编辑、预览、搜索、@ 时,石墨实时向你的应用回调要这些信息。事件类回调则反过来:当编辑器内发生评论、@ 人、内容更新时,石墨主动推送给你的应用。
配置回调地址的路径如下:
运维平台 -> 文档中台 -> 应用管理 -> 新增/编辑应用
访问地址:ip/mdp/editor-ops/apps
image.png

五、石墨文档中台(Shimo WebOffice)#

文档中台是石墨提供的文档能力平台,本质上是一个文档服务层。
石墨文档中台负责:
提供协同编辑能力
提供文档预览能力
提供文档编辑器前端 SDK 或 iframe 页面
提供文档编辑器相关服务端 API
在渲染前回调你的业务系统获取用户和文件信息
它不负责长期拥有你应用的业务数据。也就是说,它不是你应用的主数据库,不是你应用的权限中心,也不是你应用的用户中心。
从宏观上来看,石墨文档中台是:
一个文档引擎
一个协同服务
一个预览服务
一个依赖回调接口获取业务上下文的文档处理中心

六、说明#

6.1. 石墨文档中台和你的应用间的边界#

宏观上看,石墨文档中台并不是接管你的应用数据,而是作为一个“文档渲染与协同能力中心”存在。
用户仍然在你的应用里操作,你的应用前后端仍然掌握用户、文件、权限和业务数据,石墨文档中台只在需要时被调用,并通过回调接口向你的应用后端获取必要的数据。

边界 1:你的应用实现具体业务#

文档中台虽然负责渲染文档,但它并不替你的应用决定:
当前用户是谁
当前文件是什么
当前用户是否有某个文件的权限
这些属于你应用的能力范围。

边界 2:石墨文档中台实现文档能力#

你的应用虽然拥有业务控制权,但并不自己实现:
在线协同编辑引擎
预览解析引擎
文档页面渲染
协作交互能力
这些属于文档中台的能力范围。
修改于 2026-07-03 06:24:28
上一页
石墨文档中台支持哪些格式?
下一页
场景一:10 分钟创建预览文件
Built with