1. 07. 石墨后端 API
石墨文档中台-开发文档
  • 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 连接
    • 获取行列表
      GET
  • 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. 07. 石墨后端 API

整体概述

后端 API 是你的应用后端主动调用石墨的接口集合。前端 JS SDK 是"在浏览器里把石墨编辑器嵌进来"的入口;后端 API 则是"在浏览器之外创建、复制、导入、导出、读写文件"的入口。两条链路共用同一对 appId + appSecret,但密钥只能放在你的应用后端,你的应用前端代码中请勿存储 appSecret。

一、整体架构#

三类接口的角色对比(出自接口文档概览):
接口类型实现方使用方典型示例
前端 API(JS SDK)石墨你的应用前端唤起历史侧边栏、监听标题变更
后端 API石墨你的应用后端创建协同文件、读取文档纯文本
回调接口你的应用石墨石墨向你的应用要用户信息 / 文件元信息

二、分组速览#

后端 API 总共拆成 10 个分组,下表给出每组的页面目标和核心接口入口。所有路径前缀均为 /sdk/v2/api/(少数 collab-files/* 例外),表里省略以节省宽度。
分组页面目标核心接口(HTTP + 路径)
应用管理获取应用详情、更新应用回调地址GET license/apps/{appId}
PUT license/apps/{appId}/endpoint-url
用户席位管理用户列表、激活、取消、批量设置状态GET license/users
POST license/users/activate
POST license/users/deactivate
POST license/users/set-status
协同文档管理创建、复制、删除协同文件POST files
POST /sdk/v2/collab-files/{fileId}/copy
DELETE files/{fileId}
预览文件访问预览页、创建预览缓存GET cloud-files/{fileId}/page
POST cloud-files/{fileId}/create
文档导入创建导入任务、轮询进度POST files/v2/import
POST files/v2/import/progress
文档导出创建导出任务、轮询进度POST files/v1/export/{fileId}
POST files/v1/export/progress
表格内容操作读取/写入/追加/删行、新增工作表GET files/{fileId}/sheets/values
POST/PUT files/{fileId}/sheets/values
DELETE files/{fileId}/sheets/{sheetName}/rows/{index}
POST files/{fileId}/sheets
文档通用操作纯文本、字数统计、历史、版本、@ 人GET /sdk/v2/collab-files/{fileId}/plain-text
POST /sdk/v2/collab-files/{fileId}/plain-text/wc
GET /sdk/v2/collab-files/{fileId}/revisions
GET /sdk/v2/collab-files/{fileId}/mention-at-list
评论与历史评论数量、评论列表、版本列表GET /sdk/v2/collab-files/{fileId}/comment-count
GET /sdk/v2/collab-files/{fileId}/comment-list
GET /sdk/v2/collab-files/{fileId}/doc-sidebar-info
传统文档书签读取和替换书签内容GET files/{fileId}/documentpro/bookmark_content
PUT files/{fileId}/documentpro/bookmark_content
各分组的字段语义、错误码、可选参数详见原 co18-08-0X-*.md 系列文档,这里只列入口。

三、通用规范#

3.1 请求基础#

项目取值
URL 前缀/sdk/v2/api/(少数走 /sdk/v2/collab-files/)
域名由石墨按环境派发,联调和生产不同,不要混用
协议HTTP/HTTPS,Body 与响应均 application/json(导入文件 multipart 例外)
URL 占位符{fileId}、{appId} 等需在调用时替换为真实值

3.2 鉴权凭证 Signature 和 Token#

Header何时必填作用
X-WebOffice-Signature绝大多数后端 API 必填应用级身份凭证,HS256 签名的 JWT,详见 Signature 指南
X-WebOffice-Token与用户上下文相关的接口(创建文件、读写内容、导入导出等)必填业务会话凭证,由你的应用自行签发并解析,详见 Token 指南
X-WebOffice-Credential-Type回调侧识别使用0 = 用户触发(带 Token),3 = 系统触发(仅 Signature)
特殊场景:
License / /admin 类接口(应用管理、用户席位管理、部分系统级接口):签发 Signature 时必须带 scope: "license",且 exp ≤ 4 分钟。
某些预览接口(如 POST cloud-files/{fileId}/create)Signature / Token 不强制——按各接口文档为准。

3.3 错误处理#

返回总是 { status, message, data } 结构,status != 0 即异常。常见错误码族(详见原错误码说明):
错误码段含义族典型动作
10001 ~ 10015接入方对接错误(回调实现问题、JSON 不合法、网络不通)检查你的应用回调接口实现
20001 ~ 20005应用管理类错误检查 appId、参数
30001 ~ 30008账号 / Token 生成类错误检查参数;偶现可忽略
协同文档类文件不存在、权限不足等查接口文档
排查顺序:先看 HTTP 状态码 → 再看 status → 再看 message,三者结合 requestId 日志去定位。

3.4 任务模型(异步接口)#

导入、导出、预览缓存都是异步任务:
创建接口成功 ≠ 任务成功,只代表石墨收到请求并开始处理。
任务最长执行时间通常为 10 分钟(导出)。
轮询间隔建议 1~3 秒指数退避,避免风暴。

3.5 幂等与重试#

接口类型幂等?重试策略
查询类(GET *)是网络层失败可直接重试
创建协同文件、创建导入任务否失败重试前必须先确认是否已落库;建议用业务事件 id 做去重
删除文件、激活/停用用户终态幂等第二次调用通常 ok,但需要校验返回结构
表格写入(POST/PUT sheets/values)视范围而定改写同范围相对安全;追加 (append) 不幂等

3.6 限流与日志#

石墨侧对接入应用有 QPS 限制(具体限额按环境配置),高频写入接口(导入、写表格)尤其要控并发。
日志至少落:URL、参数摘要、HTTP 状态、status、message、requestId、耗时、当前用户 id。失败时把请求体和响应体一并落,便于事后排查。

四、调用示例(cURL)#

下面四条链路覆盖了"接入第一周最常打到的接口",以供参考。{ENDPOINT} 是石墨给的环境域名;{SIG}、{TOKEN} 是按 Signature 指南 / Token 指南 生成的字符串。

4.1 获取应用详情(验证联调环境)#

返回里能看到 appName、availableFileTypes、memberLimit、validUntil、endpointUrl——拿到这个就证明你的 appId / secret / endpoint 三件套对得上。

4.2 创建协同文件#

type 可选:document / documentPro / spreadsheet / presentation / table。fileId 是你的业务侧文件 id——石墨用它来回调你拿元信息和权限。

4.3 创建导入任务 + 轮询#

progress = 100 且 status = 0 即导入完成,响应里会带回石墨侧的新 fileId。详细链路见 导入导出指南。

4.4 创建导出任务 + 下载#

4.5 用户席位激活#

status 字段约定:1 已激活 / 0 禁用 / -1 未启用。批量操作建议用 POST license/users/set-status 直接指定目标状态。

五、接入建议#

把 appId + appSecret 存储在你的应用后端,不要进代码仓库或者前端代码中存储 appSecret。
实现最小回调集(GET /files/{fileId} 协同文档元信息 + GET /users/current/info),否则会频繁出现 10002 / 10003。
用 Signature 在线工具 先把 Signature 跑通;用 §4.1 调用一次"获取应用详情"作为冒烟测试。
建立调用日志规范:URL、状态码、requestId、当前用户 id 必落库。
异步任务(导入、导出、预览缓存)做幂等键和最长轮询时长保护。
上线前把所有用到的后端接口加入联调清单,跑一遍最小链路验证。
修改于 2026-06-22 02:43:30
上一页
应用表格
下一页
错误码说明
Built with