石墨文档中台(SDK)
    >=CO-1.6
    • >=CO-1.6
    • CO-1.5
    • CO-1.4
    • CO-1.2-1.3
    • <CO-1.2
    • 一文认识石墨文档中台
    • 文档中台支持的格式
    • 10 分钟创建协同文档
    • 10分钟创建预览文档
    • 示例代码仓库
    • 更新日志
    • 典型场景案例
      • 云盘场景
      • IM场景
    • 接口文档
      • 接口文档概览
      • 错误码说明
      • 石墨后端API
        • 请求签名凭证
          • 签名凭证类型
          • 签名凭证-Signature
          • 签名凭证-Token
        • 系统管理
          • 应用管理
            • 获取应用详情
            • 更新应用回调地址
          • 用户席位管理
            • 用户席位状态说明
            • 获取用户列表和席位状态
            • 激活用户席位​
            • 取消用户席位​
            • 批量设置用户席位
        • 协同文档创建删除
          • 访问协同文档
          • 创建协同文档
          • 创建协同文档副本
          • 删除协同文档
        • 预览文件
          • 访问预览文件
          • 创建文件预览缓存
        • 文档导入导出
          • 文档导入
            • 文档导入说明
            • 创建导入任务
            • 获取导入进度
            • 创建导入任务(旧版)
            • 获取导入进度(旧版)
          • 文档导出
            • 文档导出流程
            • 创建导出任务
            • 获取导出进度
        • 文档操作
          • 专业表格(Excel)
            • 专业表格接口参数说明
            • 获取表格内容
            • 获取表格中的评论数
            • 更新表格内容
            • 追加表格内容
            • 删除表格行
            • 新增表格工作表
          • 轻文档(Markdown)
            • 获取文档中的评论列表
          • 通用
            • 获取文件纯文本内容
            • 文件纯文本字数统计
            • 获取历史列表
            • 获取版本列表
            • 获取文档内容中所有的at人信息列表
          • 传统文档(Word)
            • 传统文档书签说明
            • 读取传统文档书签内容
            • 替换传统文档书签内容
      • 石墨前端API
        • 【前端】JS-API
        • 编辑器API
          • 幻灯片
          • 传统文档
          • 表格
          • 表单
          • 轻文档
          • 应用表格
      • 回调接口(接入方需实现)
        • 【后端】回调接口说明
        • 【后端】回调总览
        • 文件信息
          • 获取文件元信息-协同文档
          • 获取文件元信息-预览文档
          • 获取当前用户的文件列表
          • 获取文件的协作者列表
          • 获取接入方指定文件的完整访问地址
          • 获取文件元信息-协同文档自动任务(admin)
          • 根据指定用户获取文件元信息-协同文档(admin)
        • 用户信息
          • 批量获取用户信息(admin)
          • 获取当前用户信息
          • 获取当前用户所在团队信息
          • 获取指定用户信息
          • 获取用户水印信息
          • 获取用户部门路径
          • 批量获取用户信息
        • 团队和部门
          • 获取团队下的成员列表
          • 获取部门信息
          • 获取部门的下级部门节点
          • 获取部门下的成员分页列表
        • 搜索功能
          • 获取与文件相关的用户列表
          • 获取与文件相关的文件列表
          • 按关键字搜索文件和用户列表
        • 消息推送
          • 评论(Comment)
            • 轻文档
              • 添加评论
              • 删除评论
              • 结束评论
              • 对于评论的回复评论
            • 表格
              • 添加评论
              • 删除评论
              • 结束评论
              • 对于评论的回复评论
            • 传统文档
              • 添加评论
              • 更新评论
              • 删除评论
              • 对于评论的回复评论
            • 幻灯片
              • 添加评论
              • 删除评论
              • 结束评论
              • 对于评论的回复评论
            • 应用表格
              • 添加评论
              • 对于评论的回复评论
              • 删除评论
          • 讨论(Discussion)
            • 轻文档
              • 发送讨论消息
          • 提及(MentionAt @ 人)
            • 轻文档
              • 在评论中 at
              • 在讨论中 at
              • 在正文中 at
            • 表格
              • 在评论中 at
              • 在正文中 at
            • 传统文档
              • 在评论中 at
              • 在正文中 at
            • 应用表格
              • 在评论中 at
              • 在正文中 at
          • 日期提醒 (DateMention)
            • 轻文档
              • 创建
              • 修改
              • 删除
            • 表格
              • 创建
              • 修改
              • 删除
            • 传统文档
              • 创建
              • 修改
              • 删除
          • 文件内容更新 (FileContent)
            • 文件内容更新
          • 文档协作者协同状态变化 (Collaborator)
            • 文档协作者协同状态变化
          • 版本 (Revision)
            • 版本
          • 系统事件 (System)
            • 系统事件
          • (实验性) 回调请求错误
            • 回调请求错误
    • 常见问题
      • 复制粘贴、全屏操作不正常
      • 如何实现文档模板功能
      • 文档内容何时保存
      • 移动端不支持blob协议导致预览失败
      • 如何实现文件重命名
      • @人员时如何直接跳转至对应锚点
      • 如何通过接口修改文档内容
      • 访问接口提示 signature 无效怎么办
      • 文件预览或导入报错如何处理
      • 首次接入 SDK 报错 应该排查哪些接口
      • 文档预览如何做防盗链

    10 分钟创建协同文档

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

    协同文档流程图#

    步骤 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-04-02 02:48:18
    上一页
    文档中台支持的格式
    下一页
    10分钟创建预览文档
    Built with