飞书开发学习笔记(二)-云文档简单开发练习

这篇具有很好参考价值的文章主要介绍了飞书开发学习笔记(二)-云文档简单开发练习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

飞书开发学习笔记(二)-云文档简单开发练习

一.云文档飞书开发环境API

首先还是进入开放平台
飞书开放平台:https://open.feishu.cn/app?lang=zh-CN
云文档相关API都在“云文档”目录中,之下又有"云空间",“文档”,“电子表格”,“多维表格”等子模块,
各自有对应的功能API。
飞书开发学习笔记(二)-云文档简单开发练习,飞书开发学习笔记,JSON,飞书,学习,笔记

二.利用飞书API操作文件夹和云文档

2.1 获取我的空间目录下的文件清单

对于一个企业用户而言,他拥有一个"个人空间"的目录,对应的就是"我的空间" root folder。
飞书开发学习笔记(二)-云文档简单开发练习,飞书开发学习笔记,JSON,飞书,学习,笔记
获取我的空间这个根目录下的文件清单的API如下:

真实请求地址: 
GET
https://open.feishu.cn/open-apis/drive/v1/files?direction=DESC&order_by=EditedTime

返回结果为Json字符串,由响应头和响应体构成,其中响应体为关键返回信息,如下:

{
  "code": 0,
  "data": {
    "files": [],
    "has_more": false
  },
  "msg": "success"
}

可以看到files:[]数组为空,也就是说,主目录下没有文件。
为了测试,我们在"我的空间"目录下新建一个"测试文档"的云文档以及一个“测试表格”的电子表格,以及一个"测试子目录"的子目录,然后再查询一次

飞书开发学习笔记(二)-云文档简单开发练习,飞书开发学习笔记,JSON,飞书,学习,笔记

返回的响应体结果如下:
code 0代表查询成功
files[]数组中不再是空,而是有三个元素,对应的分别是“测试子目录”,“测试表格”,“测试文档”

{
  "code": 0,
  "data": {
    "files": [
      {
        "created_time": "1691555",
        "modified_time": "1691555",
        "name": "测试子目录",
        "owner_id": "ou_3bd0cc",
        "parent_token": "nodcnfcMb",
        "token": "VGOkfIDnuf",
        "type": "folder",
        "url": "https://test-cptojg6atdfe.feishu.cn/drive/folder/VGOkrUnuf"
      },
      {
        "created_time": "16996",
        "modified_time": "169682",
        "name": "测试表格",
        "owner_id": "ou_3bd053a2cc",
        "parent_token": "nodcnEBAfcMb",
        "token": "SVT0Zh",
        "type": "sheet",
        "url": "https://test-cptojg6atdfe.feishu.cn/sheets/SVT0Rnhh"
      },
      {
        "created_time": "1699408",
        "modified_time": "1692455",
        "name": "测试文档",
        "owner_id": "ou_3bd053cc",
        "parent_token": "nodcnEcMb",
        "token": "PAiZdu4wuAe",
        "type": "docx",
        "url": "https://test-cptojg6atdfe.feishu.cn/docx/PAiZdunAe"
      }
    ],
    "has_more": false
  },
  "msg": "success"
}

files中每个元素有8个字段构成:
created_time:创建时间戳
modified_time:修改时间戳
name:文档名称
owner_id:文档拥有者Id
parent_token:父对象的令牌,这里也就是"我的空间"这个目录的令牌,可以通过这个令牌获取到父对象文件夹
token:本文档的令牌,也就是当前文档的"身份证",也可以通过这个令牌获取到这个文档
type:这里可以看到文件夹的类型是folder,电子表格的类型是sheet,而文档的类型是docx
url:当前文件的https链接地址,通过这个地址跳转访问

2.2 获取文件数据

这里的文件是不确定类型的,可能是doc,也可能是docx或者sheet
有了文件的token,就可以利用它来访问文档的元数据
飞书开发学习笔记(二)-云文档简单开发练习,飞书开发学习笔记,JSON,飞书,学习,笔记
返回数据

{
  "code": 0,
  "msg": "success",
  "data": {
    "metas": [
      {
        "doc_token": "doccnfbcef",
        "doc_type": "doc",
        "title": "测试文档",
        "owner_id": "ou_b13d41c02edc5f1abcef",
        "create_time": "1652045",
        "latest_modify_user": "ou_b13d1abcef",
        "latest_modify_time": "16520",
        "url": "https://sample.feishu.cn/docs/doccabcef",
        "sec_label_name": "L2-内部"
      }
    ],
    "failed_list": [
      {
        "token": "boxcachabcef",
        "code": 970005
      }
    ]
  }
}

其中code 0为成功返回
metas列表中则返回了文档的基本信息。
sec_label_name是保密等级名称
下面还有复制/移动/删除等操作的API函数,核心参数就是要拿到操作目录的token,以及当前文档的token。

2.3 获取云文档的详细内容

  1. 获取云文档基本信息

根据文档的document_id,在开通相关文档操作的API权限的情况下,就可以利用云空间->文档->新版文档下的API来获取文档的整个内容。
文档内容是由若干块组成的,所以获取文档以后,还需要获取块和子块的信息。
document_id就是文档的唯一id,在文档的地址中最后一部分即是,目前发现与当前文档的token是一致的。
飞书开发学习笔记(二)-云文档简单开发练习,飞书开发学习笔记,JSON,飞书,学习,笔记
获取文档基本信息,需要填入document_id
飞书开发学习笔记(二)-云文档简单开发练习,飞书开发学习笔记,JSON,飞书,学习,笔记
返回信息:
只有revision_id版本id和title

{
  "code": 0,
  "data": {
    "document": {
      "document_id": "PAiZdxxxx",
      "revision_id": 7,
      "title": "测试文档"
    }
  },
  "msg": "success"
}
  1. 获取云文档的纯文本内容
    飞书开发学习笔记(二)-云文档简单开发练习,飞书开发学习笔记,JSON,飞书,学习,笔记
    返回数据
{
  "code": 0,
  "data": {
    "content": "测试文档\n测试文档\n"
  },
  "msg": "success"
}

content中返回了纯文本内容,包括换行符等字符

  1. 获取云文档的所有块
    飞书开发学习笔记(二)-云文档简单开发练习,飞书开发学习笔记,JSON,飞书,学习,笔记
    返回数据
{
  "code": 0,
  "data": {
    "has_more": false,
    "items": [
      {
        "block_id": "PAiZdu4wuoNPxxxxx",
        "block_type": 1,
        "children": [
          "Vvabd8vG3ozusxxx"
        ],
        "page": {
          "elements": [
            {
              "text_run": {
                "content": "测试文档",
                "text_element_style": {
                  "bold": false,
                  "inline_code": false,
                  "italic": false,
                  "strikethrough": false,
                  "underline": false
                }
              }
            }
          ],
          "style": {
            "align": 1
          }
        },
        "parent_id": ""
      },
      {
        "block_id": "Vvabd8vGxxxx",
        "block_type": 5,
        "heading3": {
          "elements": [
            {
              "text_run": {
                "content": "测试文档",
                "text_element_style": {
                  "bold": false,
                  "inline_code": false,
                  "italic": false,
                  "strikethrough": false,
                  "underline": false
                }
              }
            }
          ],
          "style": {
            "align": 1,
            "folded": false
          }
        },
        "parent_id": "PAiZdu4wuoNPxxxxxxxx"
      }
    ]
  },
  "msg": "success"
}

从返回数据可以看到,在data下的items中有block的信息。
block的主要字段为
block_id为块的id
block_type为块的类型
children为子块的id列表
接下来为该block的类型名称,如page为正文, heading3则为标题3,名称后的列表则是子元素的格式和内容
text_run:为子元素类型
content:文本内容
text_element_style:文本元素的style,包粗体 下划线 删除线等等
子块的最后信息是父元素的id即parent_id
如以上,则获取了云文档的全部内容。

2.4 获取电子表格的详细内容

  1. 获取电子表格和工作表信息
    和云文档类似,通过另一个电子表格口令spreadsheet_token可以获取表格的信息
    飞书开发学习笔记(二)-云文档简单开发练习,飞书开发学习笔记,JSON,飞书,学习,笔记

返回信息

{
  "code": 0,
  "data": {
    "spreadsheet": {
      "owner_id": "ou_3bda2cc",
      "title": "测试表格",
      "token": "SVTxxxx",
      "url": "https://test-cptojg6atdfe.feishu.cn/sheets/SVhh"
    }
  },
  "msg": ""
}

返回了owner_id,title,token,url
获取工作表的详细信息
飞书开发学习笔记(二)-云文档简单开发练习,飞书开发学习笔记,JSON,飞书,学习,笔记

返回信息

{
  "code": 0,
  "data": {
    "sheets": [
      {
        "grid_properties": {
          "column_count": 20,
          "frozen_column_count": 0,
          "frozen_row_count": 0,
          "row_count": 200
        },
        "hidden": false,
        "index": 0,
        "resource_type": "sheet",
        "sheet_id": "885d89",
        "title": "Sheet1"
      },
      {
        "grid_properties": {
          "column_count": 20,
          "frozen_column_count": 0,
          "frozen_row_count": 0,
          "row_count": 200
        },
        "hidden": false,
        "index": 1,
        "resource_type": "sheet",
        "sheet_id": "xBuAyL",
        "title": "Sheet2"
      }
    ]
  },
  "msg": ""
}

返回的信息主体sheets列表中,共有2个元素,因此查询到两张工作表
Sheet1 id:885d89
Sheet2 id:xBuAyL
grid_properties则包含了行数和列数信息,以及冻结的行列数信息

  1. 先利用spreadsheet_token和sheet_id查询工作表信息
    飞书开发学习笔记(二)-云文档简单开发练习,飞书开发学习笔记,JSON,飞书,学习,笔记
    返回数据
{
  "code": 0,
  "data": {
    "sheet": {
      "grid_properties": {
        "column_count": 20,
        "frozen_column_count": 0,
        "frozen_row_count": 0,
        "row_count": 200
      },
      "hidden": false,
      "index": 0,
      "resource_type": "sheet",
      "sheet_id": "885d89",
      "title": "Sheet1"
    }
  },
  "msg": ""
}

与获取电子表格信息类似,是指定工作表信息,内容比较简单。文章来源地址https://www.toymoban.com/news/detail-744733.html

  1. 根据工作表id获取表中的具体单元格和值信息
    调试工具台不支持API调试,但是回到开发文档,服务端API是有介绍的,因此只能通过开发程序来应用API能力读取单元格和值信息了。
    飞书开发学习笔记(二)-云文档简单开发练习,飞书开发学习笔记,JSON,飞书,学习,笔记
    飞书开发学习笔记(二)-云文档简单开发练习,飞书开发学习笔记,JSON,飞书,学习,笔记
    这个就下次在开发环境中测试了。

到了这里,关于飞书开发学习笔记(二)-云文档简单开发练习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【飞书】飞书导出md文档 | 飞书markdown文档导出 | 解决飞书只能导出pdf word

    【飞书】飞书导出md文档 | 飞书markdown文档导出 | 解决飞书只能导出pdf word

    github地址:https://github.com/Wsine/feishu2md 这是一个下载飞书文档为 Markdown 文件的工具,使用 Go 语言实现。 请看这里:招募有需求和有兴趣的开发者,共同探讨开发维护,有兴趣请联系。 《一日一技 | 我开发的这款小工具,轻松助你将飞书文档转为 Markdown》 配置文件需要填写

    2024年02月15日
    浏览(10)
  • 学习笔记|课后练习解答|电磁炉LED实战|逻辑运算|STC32G单片机视频开发教程(冲哥)|第八集(下):课后练习分析与解答

    学习笔记|课后练习解答|电磁炉LED实战|逻辑运算|STC32G单片机视频开发教程(冲哥)|第八集(下):课后练习分析与解答

    增加按键3,按下后表示启动,选择的对应的功能的LED持续闪烁,表示正在工作,且在工作的时候无法切换功能。 1 增加按键3 2 按下后表示启动 电平控制 3 工作状态锁定 表示正在工作,且在工作的时候无法切换功能。 该功能需要检测的标志位,且工作的时候无法进行切换。

    2024年02月11日
    浏览(51)
  • C++ 学习笔记、01 | 开发简单职工管理系统遇到的一些问题

    记录开发简单职工管理系统遇到的一些问题,黑马教程 https://www.bilibili.com/video/BV1et411b73Z P147 ~ P166 头文件只声明,源文件来实现(本质上是类内声明类外实现) 源文件需要引用特定的头文件 #ifndef 的方式依赖于宏名字不能冲突( 最好采用这种方式 ) 保证同一个文件只会被编

    2024年02月08日
    浏览(10)
  • Java企业级开发学习笔记(2.1)MyBatis实现简单查询

    零、创建数据库与表 在Navicat里创建MySQL数据库testdb 创建用户表 - t_user CREATE TABLE t_user ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(50) DEFAULT NULL, age int(11) DEFAULT NULL, address varchar(255) DEFAULT NULL, PRIMARY KEY ( id ) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; 执行SQL语句来创建用户表 INSERT IN

    2024年02月09日
    浏览(13)
  • 飞书-多维文档-计算时间差

    飞书-多维文档-计算时间差

    如图所示,字段类型选择 公式 单击 公式编辑器 在弹出的公式编辑框中输入公式 TEXT([终结时间]-[开始时间],\\\"HH:MM\\\") [终结时间] 和 [开始时间] 请替换成你的表格中对应的字段名称 HH:MM 表示输出的时间格式为 时:分 其中 “YYY/MM/DD HH:MM” 表示 年月日时分,可以自行选取合适的值

    2024年02月07日
    浏览(53)
  • HarmonyOS应用开发学习笔记 UI布局学习 List(){}创建列表 列表形式显示 简单使用

    HarmonyOS应用开发学习笔记 UI布局学习 List(){}创建列表 列表形式显示 简单使用

    List 创建列表 列表形式显示 官方文档:创建列表(List) 关键代码 List(){} 列表控件 ListItem() {} 子元素 例如 关键代码:listDirection(Axis.Horizontal) 默认竖直方向 Axis.Vertical 分隔线的宽度会使ListItem之间存在一定间隔,当List设置的内容间距小于分隔线宽度时,ListItem之间的间隔会使用

    2024年02月02日
    浏览(18)
  • HarmonyOS应用开发学习笔记 UI布局学习 创建轮播(Swiper) artTS 轮播组件 简单使用

    HarmonyOS应用开发学习笔记 UI布局学习 创建轮播(Swiper) artTS 轮播组件 简单使用

    官方文档 Swiper组件提供滑动轮播显示的能力。Swiper本身是一个容器组件,当设置了多个子组件后,可以对这些子组件进行轮播显示。通常,在一些应用首页显示推荐的内容时,需要用到轮播显示的能力。 loop 控制是否循环 this.swiperController.showNext(); // 通过controller切换到后一页

    2024年02月02日
    浏览(20)
  • 学习笔记|ADC反推电源电压|扫描按键(长按循环触发)|课设级实战练习|STC32G单片机视频开发教程(冲哥)|第十八集:ADC实战

    学习笔记|ADC反推电源电压|扫描按键(长按循环触发)|课设级实战练习|STC32G单片机视频开发教程(冲哥)|第十八集:ADC实战

    19.5.4 利用ADC第15通道(内部1.19V参考信号源)测量外部电压或电池电压 注意:这里的1.19V不是ADC 的基准电压ADC-Vref+,而是ADC15通道的固定输入信号源,1.19V STC32G系列ADC的第15通道用于测量内部参考信号源,由于内部参考信号源很稳定,约为1.19V,且不会随芯片的工作电压的改变而变化

    2024年02月07日
    浏览(13)
  • 基于.Net Core实现的飞书所有文档一键导出服务(支持多系统)

    基于.Net Core实现的飞书所有文档一键导出服务(支持多系统)

    一个支持Windows、Mac、Linux系统的飞书文档一键导出服务,仅需一行命令即可将飞书知识库的全部文档同步到本地电脑。支持导出 markdown , docx , pdf 三种格式。导出速度嘎嘎快,实测 700 多个文档导出只需 25 分钟,且程序是后台挂机运行,不影响正常工作。查看最新更新 最近

    2024年02月12日
    浏览(8)
  • AJAX学习笔记3练习

    AJAX学习笔记3练习

    AJAX学习笔记2发送Post请求_biubiubiu0706的博客-CSDN博客 1.验证用户名是否可用 需求,用户输入用户名,失去焦点--onblur失去焦点事件,发送AJAX POST请求,验证用户名是否可用 新建表 前端页面 WEB-INF下新建lib包引入依赖,要用JDBC 后端代码 还可以在input获得焦点时候对span里面的数据清空

    2024年02月09日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包