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. 快速开始

场景二:10 分钟创建协同编辑文件

通过本文档可快速创建一个 word 文档,并在石墨编辑器中使用。
接入方需要启动一个 HTTP 服务端,并提供文中指定的回调接口供石墨文档中台调用。关于回调接口的解释,参考:【后端】回调接口说明。
前置准备
接入方必须实现两个回调接口:
当前用户信息接口
文档元信息接口
当用户访问协同编辑文档时,石墨文档中台会自动回调这两个接口:先调用 当前用户信息接口 进行鉴权,再调用 文档元信息接口 获取文件类型和权限等信息。如果这两个接口未正确实现,协同文档将无法正常加载。

一、名词说明#

用户:使用你的平台的用户。
你的应用后端:你的应用后端服务,可以是 Java、Go、PHP、Python 实现,主要用提供你的平台前端业务需要的后端接口,同时也负责和石墨文档中台进行数据互通。
你的应用前端:你的应用前端代码,可以是 Web 或者 HTML5。
**你的应用回调 URL 地址:石墨文档中台需要通过这个 URL 去请求你实现的回调接口,比如 **https://your-endpoint-url.com
石墨文档中台:石墨文档中台服务
石墨文档中台域名:部署在你的机房的私有化版本石墨中台的访问域名,比如 :https://weboffice-shimo-local.com

二、协作文件流程图#

步骤 1:接入方生成文件 id#

例如:my-new-file-u98213
这个 id 完全由接入方决定是什么,建议使用 uuid 等方式避免重复。

步骤 2:接入方提供回调接口#

接入方要先实现两个接口供石墨服务端使用,接口必须使石墨服务端可访问。
文档元信息接口
提供一个石墨服务端可访问的 HTTP 接口,GET 请求:
http://your-endpoint-url.com/files/my-new-file-u98213 时,结果为:
{
  "id": "my-new-file-u98213",
  "name": "第一个协同文档",
  "type": "documentPro",
  "permissions": {
    "commentable": true,
    "editable": true,
    "readable": true,
    "copyable": true,
    "exportable": true
  },
  "views": 100,
  "creatorId": "1",
  "createdAt": "2021-08-01T00:00:00Z",
  "updatedAt": "2021-08-02T00:00:00Z",
  "teamGuid": "123"
}
当前用户信息接口
提供一个公网可访问的 HTTP 接口,GET 请求
http://your-endpoint-url.com/users/current/info 时,结果为:
{
  "id": "userid123",
  "name": "张三",
  "avatar": "http://fake.site/user-123.png",
  "email": "user123@fake.site",
  "teamGuid": "123"
}

步骤 3:创建协同文档#

POST 调用接口 https://office.shimoapi.com/sdk/v2/api/files ,
请求参数分为 query 和 body 两个部分。
query 参数包括:appId,signature,token。
appId:license 的 appId。
signature:签名算法算出的结果。
token:接入方提供的 token ,在石墨请求接入方的接口时,会放到 HTTP Headers X-Shimo-Token 中作为值进行传递。
body 使用 json 格式,参数包括:type,fileId。
type:documentPro
fileId:my-new-file-u98213
请求示例:

步骤 4:访问协同文档#

使用石墨前端对接 demo(推荐)#

前端 demo 地址:https://github.com/shimo-open/sdk-demo-fe
下载项目,在 index.js 中填入 signature, token, endpointUrl, fileId 这四个变量后,用浏览器打开 index.html 即可看到文档编辑器。

手动创建#

写一个最简单的 html 页面,包含一个父容器用来承载石墨的 iframe。
Shimo-js-sdk 地址:https://github.com/shimohq/shimo-js-sdk
1.
使用 npm view 和 npm pack 下载代码包 (.tgz 格式).
命令行中输入:
会下载 shimo-js-sdk 的代码压缩包,例如 shimo-js-sdk-1.2.1.tgz。
解压这个文件,会得到名为 dist 的文件夹。
2.
新建项目文件夹 shimo-doc-test。
3.
将下载下来的代码包解压,并将 shimo-js-sdk 文件夹放在 shimo-doc-test 文件夹下。
4.
在文件夹内新建两个文件,分别为 index.js 和 index.html,它们的内容如下:
index.js
index.html
5.
新建一个文件夹叫 shimo-js-sdk,并将步骤 1 中得到的 dist 文件夹放入其中,此时目录结构如下:
shimo-doc-test/
├── index.js
└── index.html
└── shimo-js-sdk/
    └── dist/
双击用浏览器打开 index.html 文件,页面中将出现石墨的编辑器(iframe 方式挂载在配置的目标容器下),此时可编辑该协同文档。

步骤5:预览协同文档#

1.
保证 获取文件元信息-协同文档 回调返回的 permissions 中至少有可读权限
预览模式下都是只读,只关注是否可读,其他权限点不影响
2.
iframe 访问 访问预览 api地址
协同文档预览时无需创建预览,直接访问预览即可

预览内容同步协同编辑内容#

协同编辑页面为 connect 后拼接的 /sdk/v2/collab-files/{fileId} 地址
image.png
预览页面 为 访问预览接口 地址 /sdk/v2/api/cloud-files/{fileId}/page
image.png
编辑页内容更新后,刷新预览界面即会显示最新内容
修改于 2026-06-22 02:43:30
上一页
场景一:10 分钟创建预览文件
下一页
整体概述
Built with