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

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

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

首先还是进入开放平台
飞书开放平台:https://open.feishu.cn/app?lang=zh-CN
云文档相关API都在“云文档”目录中,之下又有"云空间",“文档”,“电子表格”,“多维表格”等子模块,
各自有对应的功能API。
在这里插入图片描述

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

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

对于一个企业用户而言,他拥有一个"个人空间"的目录,对应的就是"我的空间" root folder。
在这里插入图片描述
获取我的空间这个根目录下的文件清单的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:[]数组为空,也就是说,主目录下没有文件。
为了测试,我们在"我的空间"目录下新建一个"测试文档"的云文档以及一个“测试表格”的电子表格,以及一个"测试子目录"的子目录,然后再查询一次

在这里插入图片描述

返回的响应体结果如下:
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,就可以利用它来访问文档的元数据
在这里插入图片描述
返回数据

{"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是一致的。
在这里插入图片描述
获取文档基本信息,需要填入document_id
在这里插入图片描述
返回信息:
只有revision_id版本id和title

{"code": 0,"data": {"document": {"document_id": "PAiZdxxxx","revision_id": 7,"title": "测试文档"}},"msg": "success"
}
  1. 获取云文档的纯文本内容
    在这里插入图片描述
    返回数据
{"code": 0,"data": {"content": "测试文档\n测试文档\n"},"msg": "success"
}

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

  1. 获取云文档的所有块
    在这里插入图片描述
    返回数据
{"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可以获取表格的信息
    在这里插入图片描述

返回信息

{"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
获取工作表的详细信息
在这里插入图片描述

返回信息

{"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查询工作表信息
    在这里插入图片描述
    返回数据
{"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": ""
}

与获取电子表格信息类似,是指定工作表信息,内容比较简单。

  1. 根据工作表id获取表中的具体单元格和值信息
    调试工具台不支持API调试,但是回到开发文档,服务端API是有介绍的,因此只能通过开发程序来应用API能力读取单元格和值信息了。
    4.
    在这里插入图片描述
    这个就下次在开发环境中测试了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/133286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java选择与循环

1.选择 前言:什么是选择呢?在我们的人生中处处面临着选择,比如说在学校你可以选择玩,摆烂,当然也可以选择努力写代码,刷题。什么样的选择就会面临什么样的结果。 其实程序和人生一样:顺序中夹杂…

简单代理模式

代理模式 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。 结构图如下: ISubject接口,定义了RealSubject和Proxy的共用接口方法,这样就可以在任何使用RealSubject的地方使用Proxy代理。 ISubject接口 public…

sed续与awk(粗糙版)

s:sed d 替换功能,改 s:替换字符串 格式是:sed -n s/需要替换的原内容/替换后的内容/(ps:数字是替换每行中的第几个,g代表是全内容替换)p 替换的文件地址 例如: c:整行替换 y:字符替换,替换前后的字符串…

idea使用lombok编译问题

idea编译报错问题如下: java: You arent using a compiler supported by lombok, so lombok will not work and has been disabled.Your processor is: com.sun.proxy.$Proxy26Lombok supports: OpenJDK javac, ECJ解决方案:在idea配置中File->Setti…

挑战100天 AI In LeetCode Day02(1)

挑战100天 AI In LeetCode Day02(1) 一、LeetCode介绍二、LeetCode 热题 HOT 100-32.1 题目2.2 题解 三、面试经典 150 题-33.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站,提供各种算法和数据结构的题目,面向程序…

【GitHub】Watch、Star、Fork、Follow 有什么区别?

目录 一、前言二、区别1. Watch2. Star3. Fork4. Follow 一、前言 GitHub 是最受欢迎的代码托管平台之一,拥有大量的开源代码可供学习。 Github 中也有类似 “点赞”、“收藏”、“加关注” 的功能。 下面介绍下,GitHub 中 Watch、Star、Fork、Follow 有…

c语言进阶部分详解(《高质量C-C++编程》经典例题讲解及柔性数组)

上篇文章我介绍了介绍动态内存管理 的相关内容:c语言进阶部分详解(详细解析动态内存管理)-CSDN博客 各种源码大家可以去我的github主页进行查找:唔姆/比特学习过程2 (gitee.com) 今天便接“上回书所言”,来介绍《高质…

Python采集数据代码示例

基本的爬虫程序的示例: typescript import * as request from request; // 信息 const proxyHost ; const proxyPort ; // 网站的 URL const url ; // 使用 request 库发起请求 request({ url, method: GET, proxy: { host: proxyHost…

Linux Vim撤销和恢复撤销快捷键

使用 Vim 编辑文件内容时,经常会有如下 2 种需求: 对文件内容做了修改之后,却发现整个修改过程是错误或者没有必要的,想将文件恢复到修改之前的样子。 将文件内容恢复之后,经过仔细考虑,又感觉还是刚才修改…

Spring 与 Spring Boot

什么是 Spring 可以理解 Spring 是一个框架。这个框架最早来源于在差不多的 20 年前的 2002 年。 在那个时候 Java 世界的开发还是以 EJB 为主,因为在这之前的大部分应用都会使用服务器客户端的应用模式。 其实这个模式在现在还是在使用的,例如 IBM 系统…

企业级SpringBoot单体项目模板 —— 使用 AOP + JWT实现登陆鉴权

😜作 者:是江迪呀✒️本文关键词:SpringBoot、企业级、项目模板☀️每日 一言:没学会走就学跑从来都不是问题,要问问自己是不是天才,如果不是,那就要一步步来 文章目录 使用JWT实现…

【MySQL事务篇】多版本并发控制(MVCC)

多版本并发控制(MVCC) 文章目录 多版本并发控制(MVCC)1. 概述2. 快照读与当前读2.1 快照读2.2 当前读 3. MVCC实现原理之ReadView3.1 ReadView概述3.2 设计思路3.3 ReadView的规则3.4 MVCC整体操作流程 4. 举例说明4.1 READ COMMITTED隔离级别下4.2 REPEATABLE READ隔离级别下 …

四.pyqt5 登录界面和功能

一.使用qt creator 设置登录界面 主界面为之前设计的界面 from123.py 文章地址:三.listview或tableviw显示 二.导出ui文件为py文件 # from123.py 为导出 py文件 form.ui 为 qt creator创造的 ui 文件 pyuic5 -o x:\xxx\Fromlogin20230809.py form.ui三.python 显…

网上书店项目

源码下载地址 支持:远程部署/安装/调试、讲解、二次开发/修改/定制 程序运行视频查看 管理员 图书管理 添加图书 删除图书(可批量删除) 修改图书 查看图书(分页查看) 图书上下架(可批量处理) 图书推荐(新品推荐、精品推荐,可批量处理&#…

关于 HTML 的一切:初学者指南

HTML 代表超文本标记语言,是用于创建网页和 Web 应用程序的标准语言。 本指南将全面介绍 HTML,涵盖从基本语法和语义到更高级功能的所有内容。 我的目标是用简单的术语解释 HTML,以便即使没有编码经验的人也能学习如何使用 HTML 构建网页。…

Centos7上Python克隆与对网页完整截图

有用的话谢谢点赞~ 安装Python3.11 cd /root wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz tar -xzf Python-3.11.0.tgz yum -y install gcc zlib zlib-devel libffi libffi-devel yum install readline-devel yum install openssl-devel openssl11 ope…

【qemu逃逸】GACTF2020-babyqemu

前言 虚拟机用户名:root 无密码 设备逆向 题目去掉的符号,经过逆向分析,实例结构体如下: 可以看到 arr_int_8 数组后面存在一个函数指针,不用想基本上就是劫持该函数指针了。 denc_mmio_read 函数 这里存在越界读…

盘点苹果手机导出照片到电脑的3个方法!

大家都知道,手机中的照片是非常占用空间的。特别是对喜欢拍照的女生来说,每一张照片都很珍贵,并且也不舍得删除,所以想要将照片导出到电脑上进行保存。这样,也方便以后进行恢复与查看。 对于想要将苹果手机上的照片导…

英飞凌TLF35584规格书中文

官网: 英飞凌TLF35584QVVS2 TLF35584_SPI: 1 Overview2 Block Diagram3 Pin Configuration3.1 Pin Assignment - PG-VQFN-48 4 General Product Characteristics4.1 Absolute Maximum Ratings 绝对最大额定值4.2 Functional Range4.3 Thermal Resistance…