当前位置: 首页 > news >正文

飞书开发学习笔记(一)-应用创建和测试

飞书开发学习笔记(一)-应用创建和测试

一.前言

现在大企业用的办公IM软件中,飞书是口碑最好的,不得不说,字节在开发产品方面,确实有自己独到的竞争力,比如说抖音、头条、飞书。在办公会议和云文档的体验上,其它的办公IM软件可以说完全不是对手。为了在办公中能够高效率的完成一些数据的收集并创建文书文档,学习一下飞书的开发是很有意义的。基于此,我想从飞书的开发文档开始,学习一些飞书的二次开发方案,并记录为学习笔记。

二.开发文档

飞书的开发文档地址为: https://open.feishu.cn/document/home/index
根据应用的能力形态,飞书应用主要可分为 机器人、网页、小程序、小组件四类。
不过如果简单的二次开发,飞书提供了强大的API文档和工具台。也就是说,利用python或者C#,只要进行简单的API调用,就能完成飞书的开发,对于云文档的操作就可以完成了。
那么,首先利用飞书API工具台和API函数,进行简单开发,就是比较适合的入门学习。

2.1 飞书开放平台

飞书开放平台:https://open.feishu.cn/app?lang=zh-CN
打开之后,进入开放平台页面。
开发工具之前,需要先自建一个应用,这个目的只是建立一个应用入口,作为应用的入口和凭证。
建立之后,就能够出现开发的工具台和教程。
在这里插入图片描述
在设计应用中,首先是介绍文档。
开放能力介绍: https://open.feishu.cn/document/client-docs/intro
飞书的框架中,开放平台的所有能力,不论是小程序/H5/机器人,还是开发API接口,都能通过飞书提供的API进行开发。
在这里插入图片描述
优秀开发案例: 地址
这里有一些比较好的开发案例,其中有一个:利用服务器端OpenAPI实现文档自动导出就挺好的,多逛一逛,看一看能够学习到不少开发的思路和点子。

2.2 搭建应用

点击 创建企业自建应用
在这里插入图片描述

创建完成后,可先不添加应用能力,比如“小程序/组件/机器人"。

在这里插入图片描述

由于正式的应用需要发布后,向企业申请权限,调试比较麻烦,所以这里先创建一个测试版本。
利用测试企业和人员来测试API的情况,是比较方便的。

在这里插入图片描述
切换到测试应用后,可以申请API操作相关应用权限。
在这里插入图片描述

在测试应用中,默认自己就是管理员身份,因此申请权限时是申请就开通。
在这里插入图片描述

2.3 飞书API

在这里插入图片描述

测试应用和权限开通后,就可以看到这样一个API调试台,左侧有应用的鉴权凭证,
左下方有全部的API列表,右侧则是API调试的请求头和请求体,按照要求填写后请求参数后,就可以点击
开始调试 进行API调试了。
在这里插入图片描述
飞书开放平台提供的 API 遵循 RESTful 风格,请求 URL 的格式为:
在这里插入图片描述
调用服务端 API 的流程如下图所示。

在这里插入图片描述

创建应用。在开发者后台,根据实际需求,创建自建应用或者商店应用。
仅拥有 ISV 资质的用户可以创建商店应用。有关 ISV 的详细介绍,请参考如何入驻飞书开放平台。
获取访问凭证。飞书开放平台设置了多种访问凭证(也称为 access_token),不同的访问凭证代表了不同的资源访问权限。调用 API 时,需要在 HTTP Header 中携带访问凭证,以便获取权限范围内的资源信息。

申请 API 权限。如果要调用 API,需要先获取接口调用权限;如果涉及到访问敏感字段,还需获取访问敏感字段的权限。

(可选)配置应用数据权限。当应用申请了部分 API 的权限(例如,通讯录、飞书人事企业版)后,还需要配置相应的数据权限并提交审核。待审核通过后权限生效,才可以成功调用 API 获取数据,否则调用 API 时会返回权限错误。

(可选)设置 IP 白名单。为了提升应用的安全性,可以为应用设置 IP 白名单。仅当源 IP 在白名单内时,飞书开放平台才会响应,否则请求将被拒绝。

调用 API。完成上述步骤后,便可以调用 API 了。你可以参考 API 文档,了解 API 的具体功能。

三.测试应用

3.1 鉴权

刷新口令token后,在API的自建应用获取中,将API的请求体中的app_id和app_secret复制下来,开发中需要使用。
在这里插入图片描述

3.2 测试API

以 自建应用获取 tenant_access_token 这个API为例,测试工作台中需要填写的参数分别为请求头和请求体。
在这里插入图片描述
测试工作台中,请求头和请求体已经自动填好了,点击 开始调试 就可以看到响应的结果。
在这里插入图片描述
返回的状态码为 200 显示测试API成功。
返回的数据是一个json字符串,返回了code,expire,msg和tenant_access_token四个结果,而第四个就是口令。
至此,初步的应用创建和测试已经成功,利用API查询到了tenant_access_token的结果。

相关文章:

飞书开发学习笔记(一)-应用创建和测试

飞书开发学习笔记(一)-应用创建和测试 一.前言 现在大企业用的办公IM软件中,飞书是口碑最好的,不得不说,字节在开发产品方面,确实有自己独到的竞争力,比如说抖音、头条、飞书。在办公会议和云文档的体验上,其它的办公…...

【Mybatis小白从0到90%精讲】12:Mybatis删除 delete, 推荐使用主键删除!

文章目录 前言XML映射文件方式推荐使用主键删除注解方式工具类前言 在实际开发中,我们经常需要删除数据库中的数据,MyBatis可以使用XML映射文件或注解来编写删除(delete)语句,下面是两种方法的示例。 XML映射文件方式 Mapper: int delete(int id);Mapper.xml:...

RocketMQ批量发送消息❓

优点: 批量发送消息可以提高rocketmq的生产者性能和吞吐量。 使用场景: 发送大量小型消息时;需要降低消息发送延迟时;需要提高生产者性能时; 注意事项: 消息列表的大小不能超过broker设置的最大消息大小;消息列表…...

一键同步chromedriver版本

ChromeDriver是一个控制Chrome浏览器的驱动程序,它和Selenium一起被广泛用于Web自动化测试。然而,随着Chrome版本的升级,我们需要不断更新ChromeDriver以保持其与Chrome的兼容性。这个过程既费时又繁琐,而且对于非技术人员来说可能…...

Zephyr-7B-β :类GPT的高速推理LLM

Zephyr 是一系列语言模型,经过训练可以充当有用的助手。 Zephyr-7B-β 是该系列中的第二个模型,是 Mistralai/Mistral-7B-v0.1 的微调版本,使用直接偏好优化 (DPO) 在公开可用的合成数据集上进行训练 。 我们发现,删除这些数据集的…...

【笔试题】位运算

记录一些常见的位运算题&#xff1a; 1、实现对一个8bit数据&#xff08;unsigned char类型&#xff09;的指定位&#xff08;例如第n位&#xff09;置0或者置1操作&#xff0c;并保持其他地位不变。 unsigned char reg;/* 对第n位置0 */ reg &~ (1 << n);/* 对第n位…...

RT-Thread 10. 使用keil4编译GD32F450

1. 修改keil路径 2.增加MCU型号宏定义 3. 在ENV界面输入 scons -c scons --targetmdk44. 编译 scons --verbose提示错误 Warning: L6310W: Unable to find ARM libraries. Error: L6411E: No compatible library exists with a definition of startup symbol __main. Finish…...

Vue 跨域的两种解决方式

一、通过 proxy 解决跨域 1.1 baseURL 配置 对 axios 二次封装时&#xff0c;baseURL 设置为 /api。 const serviceAxios axios.create({baseURL: /api,timeout: 10000, // 请求超时设置withCredentials: false, // 跨域请求是否需要携带 cookie });1.2 vue.config.js 配置…...

【windows Docker 安装mysql:只需3条命令】

如下 docker pull mysql docker run --name mysql -p 3306:3306 -v D:/dockerFile/mysql/data:/var/lib/mysql/ -v D:/dockerFile/mysql/conf/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORDroot -d mysql:latest --default-authentication-pluginmysql_native_password do…...

【软件逆向】如何逆向Unity3D+il2cpp开发的安卓app【IDA Pro+il2CppDumper+DnSpy+AndroidKiller】

教程背景 课程作业要求使用反编译技术&#xff0c;在游戏中实现无碰撞。正常情况下碰撞后角色死亡&#xff0c;修改为直接穿过物体不死亡。 需要准备的软件 il2CppDumper。DnSpy。IDA Pro。AndroidKiller。 一、使用il2CppDumper导出程序集 将{my_game}.apk后缀修改为{my_…...

vue3ref和reactive

Vue 3中的ref和reactive是两个重要的响应式API。 ref用于将基本数据类型转换为响应式数据&#xff0c;它返回一个包含value属性的响应式对象。ref适合用于单个值的响应式需求&#xff0c;例如计数器、表单数据等。示例代码&#xff1a; <template><div><p>…...

[架构之路-244]:目标系统 - 设计方法 - 软件工程 - 软件开发方法与软件开发模型

目录 一、软件开发方法&#xff1a;组织、管理、复用软件代码的方法 1.1 概述: 软件聚合的程度由简单到复杂 1.2 结构化的开发方法 1.3 面对对象的开发方法 1.4 面向组件的开发方法 1.5 面向服务的开发方法 1.6 不同开发方法比较&#xff1a;结构化、面对对象、面向组件…...

Matter 系列 #10|Matter 的证书吊销机制

乐鑫 Matter 系列文章 #10 在之前的多篇博客文章中&#xff0c;我们从不同方面介绍了 Matter&#xff0c;其中包括 Matter 的安全模型。简单回顾一下&#xff0c;Matter 的安全模型基于 PKI&#xff08;即公钥基础设施&#xff09;机制&#xff0c;可用于建立和管理数字证书、加…...

mybatis动态表名

1.基于mybatis官方文档 Configuration public class MybatisPlusConfig {Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor new MybatisPlusInterceptor();DynamicTableNameInnerInterceptor dynamicTableNameInnerIntercep…...

高校为什么需要大数据挖掘平台?

目前数据挖掘已经成为各种应用领域的重要技术&#xff0c;大学数据挖掘课程的开放已经出现。数据挖掘课程整合了多门学科知识。该课程包括各种理论知识&#xff0c;也离不开相关的实用技术。整个教学过程是培养和提高学生全面创新和解决问题的能力。过去&#xff0c;教学过程理…...

@Value的使用

在spring boot项目中&#xff0c;Value只能获取非静态变量&#xff0c;否则是null /*** cron"0 */1 * * * ?"*/ Value("${system.cron}") private String cron;/*** cron1null*/ Value("${system.cron}") private static String cron1;静态块获…...

用 Wireshark 在 Firefox 或 Google Chrome 上使用 SSLKEYLOGFILE 环境变量解密 SSL 流量

原文&#xff1a;这 您希望使用 SSL 会话密钥解密和检查 SSL 应用程序数据。 您希望在客户端系统上记录 SSL 会话密钥。 您正在客户端系统上使用 Firefox 或 Google Chrome 浏览器来访问 Web 应用程序。 注意&#xff1a;您还可以在客户端系统上使用 Microsoft Edge &#xff…...

京东大数据:2023年Q3美妆行业数据分析报告

近日&#xff0c;珀莱雅发布三季报&#xff0c;今年前三季度&#xff0c;公司实现营收52.49亿元&#xff0c;同比增长32.47%。分季度看&#xff0c;“618大促”所在Q2业绩增长最为亮眼&#xff0c;营收同比增速达到46.22%&#xff0c;进入Q3&#xff0c;在电商大促缺席情况下&a…...

[题] 改革春风吹满地 #图论 #多边形面积

题目 HDU 2036 改革春风吹满地 题解 参考博客&#xff1a;HDU 2036 改革春风吹满地 代码 #include<bits/stdc.h> using namespace std; const int N 110; //叉乘计算面积的公式&#xff0c;以(0,0)为起始点划分 int main() {int n;while(~scanf("%d", &…...

FPGA时序分析与约束(2)——时序电路时序

一、前言 在之前的内容中&#xff0c;我们介绍了组合电路的时序问题和可能导致的毛刺&#xff0c;强烈推荐在阅读前文的基础上再继续阅读本文&#xff0c; 前文链接&#xff1a;FPGA时序分析与约束&#xff08;1&#xff09;——组合电路时序 这篇文章中&#xff0c;我们将继续…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...