飞书开发学习笔记(二)-云文档简单开发练习
飞书开发学习笔记(二)-云文档简单开发练习
一.云文档飞书开发环境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 获取云文档的详细内容
- 获取云文档基本信息
根据文档的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"
}
- 获取云文档的纯文本内容

返回数据
{"code": 0,"data": {"content": "测试文档\n测试文档\n"},"msg": "success"
}
content中返回了纯文本内容,包括换行符等字符
- 获取云文档的所有块

返回数据
{"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 获取电子表格的详细内容
- 获取电子表格和工作表信息
和云文档类似,通过另一个电子表格口令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则包含了行数和列数信息,以及冻结的行列数信息
- 先利用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": ""
}
与获取电子表格信息类似,是指定工作表信息,内容比较简单。
- 根据工作表id获取表中的具体单元格和值信息
调试工具台不支持API调试,但是回到开发文档,服务端API是有介绍的,因此只能通过开发程序来应用API能力读取单元格和值信息了。


这个就下次在开发环境中测试了。
相关文章:
飞书开发学习笔记(二)-云文档简单开发练习
飞书开发学习笔记(二)-云文档简单开发练习 一.云文档飞书开发环境API 首先还是进入开放平台 飞书开放平台:https://open.feishu.cn/app?langzh-CN 云文档相关API都在“云文档”目录中,之下又有"云空间",“文档”,“电子表格”&a…...
设计模式——命令模式(Command Pattern)+ Spring相关源码
文章目录 一、命令模式定义二、例子2.1 菜鸟教程例子2.1.1 定义命令类接口2.1.2 定义命令执行者2.1.3 被处理对象Stock。2.1.4 封装处理Stock的命令 2.2 JDK源码——Runnable2.2.1 命令接口2.2.2 命令处理者2.2.3 命令实现类 2.3 SpringMVC——Controller2.3.1 请求对象 handle…...
[开源]企业级在线办公系统,基于实时音视频完成在线视频会议功能
一、开源项目简介 企业级在线办公系统 本项目使用了SpringBootMybatisSpringMVC框架,技术功能点应用了WebSocket、Redis、Activiti7工作流引擎, 基于TRTC腾讯实时音视频完成在线视频会议功能。 二、开源协议 使用GPL-3.0开源协议 三、界面展示 部分…...
Scala语言用Selenium库写一个爬虫模版
首先,我将使用Scala编写一个使用Selenium库下载yuanfudao内容的下载器程序。 然后我们需要在项目的build.sbt文件中添加selenium的依赖项。以下是添加Selenium依赖项的代码: libraryDependencies "org.openqa.selenium" % "selenium-ja…...
ZZ038 物联网应用与服务赛题第I套
2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 (I卷) 赛位号:______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等; 2.竞赛任务中所使用的各类软件工…...
ClickHouse 学习之基础入门(一)
第 1 章 ClickHouse 入 门 ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库(DBMS),使用 C 语言编写,主要用于在线分析处理查询(OLAP),能够使用 SQL 查询实时生成分析数据报告。 …...
HttpClient基本使用
十二、HttpClient 12.1 介绍 HttpClient是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。 HttpClient作用: 发送HTTP请求接收响应数据 …...
力扣:150. 逆波兰表达式求值(Python3)
题目: 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意: 有效的算符为 、-、* 和 / 。每个操作数(运算对象)都可以是一个整数或者另一…...
Tomcat运行日志乱码问题/项目用tomcat启动时窗口日志乱码
文章目录 一、问题描述:二、产生原因三、解决方法 一、问题描述: 项目在idea中运行时日志是正常的,用Tomcat启动时发现一大堆看不懂的文字,如 二、产生原因 产生乱码的根本原因就是编码和解码不一致,举个例子就是翻…...
Leetcode—199.二叉树的右视图【中等】
2023每日刷题(十九) Leetcode—199.二叉树的右视图 深度优先遍历实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(…...
微信小程序如何跳转到外部小程序
要在微信小程序中跳转到外部小程序,您可以使用微信小程序提供的 wx.navigateToMiniProgram 方法。以下是实现步骤: 在需要跳转的页面或组件中,编写触发跳转的逻辑,例如点击按钮: 替换 外部小程序的AppID 和 外部小程序…...
ElasticSearch集群环境搭建
1、准备三台服务器 这里准备三台服务器如下: IP地址主机名节点名192.168.225.65linux1node-1192.168.225.66linux2node-2192.168.225.67linux3node-3 2、准备elasticsearch安装环境 (1)编辑/etc/hosts(三台服务器都执行) vim /etc/hosts 添加如下内…...
[架构之路-250/创业之路-81]:目标系统 - 纵向分层 - 企业信息化的呈现形态:常见企业信息化软件系统 - 企业内的数据与数据库
目录 一、数据概述 1.1 数据 1.2 企业信息系统的数据 1.3 大数据 1.4 数据与程序的分离思想 1.5 数据与程序的分离做法 1.6 数据库的基本概念 1.7 企业数据来源 1.8 企业数据架构 二、常见的数据库类型 2.1 数据库分类 2.1 数据库类型 2.2 常见的数据库类型、应用…...
delaunay和voronoi图 人脸三角剖分
先获取人脸68个特征点坐标,其中使用了官方的预训练模型shape_predictor_68_face_landmarks.dat: import dlib import cv2predictor_path "shape_predictor_68_face_landmarks.dat" png_path "face.jpg"txt_path "points.tx…...
MySQL数据库之表的增删查改
目录 表的操作1.创建表创建表案例 2.查看表结构3.修改表4.删除表 表的操作 1.创建表 语法: CREATE TABLE table_name (field1 datatype,field2 datatype,field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;说明: field 表示列…...
(论文阅读11/100)Fast R-CNN
文献阅读笔记 简介 题目 Fast R-CNN 作者 Ross Girshick 原文链接 https://arxiv.org/pdf/1504.08083.pdf 目标检测系列——开山之作RCNN原理详解-CSDN博客 Fast R-CNN讲解_fast rcnn-CSDN博客 Rcnn、FastRcnn、FasterRcnn理论合集_rcnn fastrcnn fasterrcnn_沫念的博客…...
Git 标签(Tag)实战:打标签和删除标签的步骤指南
目录 前言使用 Git 打本地和远程标签(Tag)删除本地和远程 Git 标签(Tag)开源项目标签(Tag)实战打标签删除标签 结语开源微服务商城项目前后端分离项目 前言 在开源项目中,版本控制是至关重要的…...
React 底层 Fiber 架构 简单理解
一、 背景 JS 是引擎是单线程运行的;严格来说,JS 引擎和页面渲染引擎在同一渲染线程,两者互斥。那么就会遇到这样的一种情况:当前面一个任务长期霸占CPU,后面啥事也干不了,浏览器卡死,造成极差…...
使用 Python 进行自然语言处理第 4 部分:文本表示
一、说明 本文是在 2023 年 3 月为 WomenWhoCode 数据科学跟踪活动发表的系列文章中。早期的文章位于:第 1 部分(涵盖 NLP 简介)、第 2 部分(涵盖 NLTK 和 SpaCy 库)、第 2 部分(涵盖NLTK和SpaCy库…...
【LLM】大语言模型高效微调方案Lora||直击底层逻辑
大白话: DL的本质就是矩阵的乘法,就能实现LLM, 假设两个矩阵都很大,一个mxn,一个nxd的矩阵,m,n,d这几个数字可能几千甚至上万的场景,计算起来代价很大,如果我们可以small 这些数字,缩小到10甚至5这样的s…...
长期项目使用Taotoken聚合API的稳定性与容灾感受
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期项目使用Taotoken聚合API的稳定性与容灾感受 1. 项目背景与接入初衷 我们团队负责一个面向内部用户的中型知识问答系统&#…...
SABIC塑料与宏裕塑胶的卓越合作:高性能材料的行业应用
导读:在制造业转型升级的关键时期,高性能工程塑料的应用正成为企业提升产品竞争力的核心要素。SABIC塑料与宏裕塑胶的卓越合作,为行业提供了从原料选型到技术落地的完整解决方案,这种强强联合的模式正在重新定义高端材料供应体系。…...
Python量化投资利器:5步掌握pywencai获取同花顺问财数据
Python量化投资利器:5步掌握pywencai获取同花顺问财数据 【免费下载链接】pywencai 获取同花顺问财数据 项目地址: https://gitcode.com/gh_mirrors/py/pywencai 在金融数据分析和量化投资领域,获取高质量、实时的A股市场数据一直是开发者和分析师…...
英伟达816亿营收+国产2000亿参数图像模型:AI军备赛再升级
英伟达Q1:816亿美元营收,AI算力王依然碾压 大家好,我是LeafStay。 今天凌晨,英伟达交出了一份让全市场都松口气的财报。 2027财年Q1(截至2026年4月),英伟达营收816亿美元,同比增长…...
鸿蒙PC中获取并使用DevEco Studio
鸿蒙PC中获取并使用DevEco Studio 一、前言 本文由 AtomCode 协助润色 随着鸿蒙生态的不断扩展,DevEco Studio 也推出了适配鸿蒙 PC 的预览版本。本文将详细介绍如何申请公测名额、下载安装 DevEco Studio,以及创建/导入项目并安装到鸿蒙设备。 前置条…...
Windows 环境 OpenClaw 2.7.5 一键安装避坑指南
OpenClaw 一键安装包|可视化部署,简化环境配置流程✨适配系统:Windows10/11 64 位当前版本:v2.7.5(虾壳云版)✨核心优势:全程可视化操作,不用命令行、不用手动配置 Python/Node.js&a…...
3分钟掌握AI图像分层:从单张图片到专业PSD的智能转换
3分钟掌握AI图像分层:从单张图片到专业PSD的智能转换 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 你是否曾经面对一张精美的插画ÿ…...
收藏! Harness 让你轻松驾驭大模型,小白也能写出高效代码
本文探讨了 AI 编程 Agent 的核心要素,强调 Harness(工具、流程和反馈系统)的重要性远超单纯依赖模型。通过实例说明,优化编辑格式等 Harness 设计可显著提升 Agent 成功率。文章提出,为 AI 准备更好的工作台ÿ…...
Onekey Steam清单下载工具:快速获取游戏清单的完整指南
Onekey Steam清单下载工具:快速获取游戏清单的完整指南 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey Onekey是一款专业的开源Steam Depot清单下载工具,能够直接连接Ste…...
别再外挂EEPROM了!手把手教你用STM32G0内部Flash存数据(寄存器操作,附完整工程)
解锁STM32G0内部Flash潜能:寄存器级数据存储实战指南 在嵌入式系统设计中,外置EEPROM芯片曾是存储配置参数的标配方案。但当我们使用STM32G0这类现代微控制器时,其内部丰富的Flash资源其实可以完美替代外部存储芯片。本文将带您深入探索如何…...
