飞书开发学习笔记(四)-飞书API的访问凭证获取

news2024/12/27 4:09:28

飞书开发学习笔记(四)-飞书API的访问凭证获取

一.了解飞书的访问凭证体系

飞书有一套完善的鉴权管理系统,在飞书API开发时,请求头中必须包含有相关的凭证信息。这个凭证信息是整个开发的安全所在,并且有对应的时效,所以了解飞书的这一套访问凭证体系是非常重要的。
获取访问凭证:获取访问凭证方法介绍
在这里插入图片描述
访问凭证分为三种:
tenant_access_token 租户授权凭证:应用代表租户(即企业或团队)执行对应操作,也就是说团队而非个人的场景。t-前缀。
user_access_token 用户授权凭证:代表用户执行的操作,比如云文档或日程。u-前缀。
app_access_token 应用授权凭证:应用使用自己的身份执行对应操作,不归属到具体的企业或用户。a-或t-前缀。

选择合适的访问凭证:
由于app_access_token的使用场景比较少,飞书开放平台正在逐步统一app_access_token和tenant_access_token两个凭证。

tenant_access_token
Tenant Access Token 代表使用应用的身份操作 OpenAPI,API 所能操作的数据资源范围受限于应用的身份所能操作的资源范围。

如果你的业务逻辑不需要操作用户的数据资源,仅需操作应用自己拥有的资源(比如在应用自己的文档目录空间下创建云文档),则推荐使用 Tenant Access Token,无需额外申请授权。

user_access_token
User Access Token 代表使用应用的使用者的身份操作 OpenAPI,API 所能操作的数据资源范围受限于用户的身份所能操作的资源范围。

如果你的业务逻辑需要操作用户的数据资源(例如需要在用户的文档目录空间下创建云文档),则推荐使用 User Access Token,无需额外申请授权。如果使用 Tenant Access Token,则需额外在资源层面为应用添加相应的授权。

以通讯录为例,如需使用 Tenant Access Token 调用通讯录,则需在开发者后台「权限管理」页面配置应用的通讯录权限范围;而使用 User Access Token 则无需单独配置通讯录权限范围,该范围遵循 User Access Token 所属的用户的通讯录权限范围。

二.获取相应的访问凭证

2.1凭证有效期

访问凭证存在有效期。
tenant_access_token和app_access_token的最大有效期是 2 小时。
user_access_token 的最大有效期是 6900 秒。
开发者需要在自己的服务端设置定时刷新凭证的业务逻辑,以防止过期。如在过期前 1.5 小时之内重新获取凭证,则会拿到与原值相同的值,但每次返回的剩余有效时间(expire)会发生变化,如下图所示。
在这里插入图片描述

2.2获取自建应用的 tenant_access_token

在 基础信息 > 凭证与基础信息 页面,获取应用凭证 App ID 和 App Secret。
这个在第一页是有说明的,用在API的headers里也能找到。
在这里插入图片描述
然后利用API获取 tenant_access_token
在这里插入图片描述
需要的参数: App ID 和 App Secret填入请求体,这两个参数是App创建完成之后固定不变的。

#API范例获取自建应用凭证tenant_access_token

app_id="cli_a3XXXXXX00e"
app_secret="kCp1XXXXXXXXXDu"
url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal"
payload = json.dumps({
	"app_id": app_id,
	"app_secret": app_secret
})

headers = {
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)
json_Data=json.loads(response.text)
# 打印返回体信息
print(json_Data)
tenant_access_token=json_Data['tenant_access_token']

这样,用这两个参数就获得了tenant_access_token
{‘code’: 0, ‘expire’: 3716, ‘msg’: ‘ok’, ‘tenant_access_token’: 't-xxxxxx}
返回体中有一个expire代表的是有效时间,3716代表还剩3716秒

说明: tenant_access_token 的最大有效期是 2 小时。如果在有效期小于 30 分钟的情况下,调用本接口,会返回一个新的 tenant_access_token,这会同时存在两个有效的 tenant_access_token。

2.3获取用户访问凭证 user_access_token

本章节以应用的网页应用功能为例介绍如何获取 user_access_token。如果你需要为应用的小程序能力获取user_access_token,则需要参考使用小程序提供的 code2session 接口。
获取 user_access_token 的方式同时适用于企业自建应用和商店应用。

登录开发者后台,选择指定应用。
在 开发配置 > 安全设置 页面,配置重定向 URL。
在这里插入图片描述
根据开发文档的介绍,需要应用中添加应用能力,比如小程序,网页或者移动应用登录等等,然后把
服务端URL进行重定向。这个过程比较复杂,就不进行展开了。
在这里插入图片描述
这里是网页应用免登以及二维码扫描登录的案例:
网页应用免登
https://open.feishu.cn/document/home/quickly-create-a-login-free-web-app/introduction
二维码扫描登录
https://open.feishu.cn/document/home/qr-code-scanning-login-for-web-app/introduction
在这里插入图片描述
飞书开放平台会校验应用发送过来的重定向 URL 的合法性,仅在重定向 URL 列表中的 URL 会通过校验。
在这里插入图片描述
这个API是https://open.feishu.cn/open-apis/authen/v1/access_token 方法为POST
需要的参数中 请求头的Authorization需要app_access_token
而请求体中的code需要 登录预授权码
都需要从其它方法中获得。
在这里插入图片描述

  1. 获取app_access_token
    在这里插入图片描述
    API https://open.feishu.cn/open-apis/auth/v3/app_access_token
    方法为POST
    在这里插入图片描述
    只有1个app_ticket需要获取,其它都是有的,以下为app_ticket的获取方法。

    根据以上说明,在配置请求地址以后,就可以通过接收消息获取最新的app_ticket,这样就得到了所有的参数可以执行app_access_token的查询和获得了。
  2. 获取登录预授权吗code
    获取登录预授权码
    在这里插入图片描述
    API格式,方法为GET
    在这里插入图片描述
    需要配置的参数如下:
    在这里插入图片描述
    redirect_uri:重定向URL地址,在应用的“安全设置”中设置
    app_id:应用id已经获得
    state:用来维护请求和回调状态的附加字符串, 在授权完成回调时会附加此参数,应用可以根据此字符串来判断上下文关系示例中为RANDOMSTATE
    根据以上,飞书API访问凭证获取就了解完成了,实际上还有很多具体内容需要掌握,以后再慢慢结合应用开发进行练习。

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

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

相关文章

回馈负载的工作原理

回馈负载是一种闭环控制系统,其基本原理是通过测量系统的输出,并将测量结果与期望的参考输入进行比较,从而产生一个误差信号。这个误差信号被送入控制器,控制器根据预先设定的控制算法来生成控制信号,以调整系统的行为…

UE5——源码阅读——5——引擎预初始化

初始化IO调度器 初始化文本本地化系统 初始化着色器代码库 检测当前的命令行参数是否包含文件覆盖的选项 向引擎二进制搜索路径中添加一些特定的限制的子目录,保证依赖的动态库文件可以被正确的找到,这些被限制的目录通常是包含一些受限的或者是特定…

【服务器使用】vscode winscp进行服务器容器连接(含修改初始密码)

1:获取docker的登陆信息 例如节点(host)、端口(port)、密码(passwd)等信息,这个自己找组内的前辈获取即可 2:配置config文件 找到vscode里面ssh处的config文件 人工找…

非父子通信事件、数据传递

非父子组件消息传递 1.作用 非父子组件之间,进行简易消息传递。(复杂场景→ Vuex) 2.步骤 创建一个都能访问的事件总线 (空Vue实例) import Vue from vue const Bus new Vue() export default BusA组件(接受方)&am…

手机升级STM32单片机,pad下载程序,手机固件升级单片机,局域网程序下载,STM32单片机远程下载升级

STM32单片机,是我们最常见的一种MCU。通常我们在使用STM32单片机都会遇到程序在线升级下载的问题。 STM32单片机的在线下载通常需要以下几种方式完成: 1、使用ST提供的串口下载工具,本地完成固件的升级下载。 2、自行完成系统BootLoader的编写…

Unit1_3:分治算法之排序问题

文章目录 一、归并排序二、快速排序思路伪代码流程图时间复杂度改进 三、堆排序结构插入提取最小值排序抽象 四、比较排序总结决策树模型 一、归并排序 归并排序子操作的思路和Unit_2逆序计算一样 下面写一下伪代码 if left < right thencenter←L(left right)/2];Merges…

Linux CentOS配置阿里云yum源

一&#xff1a;先备份文件&#xff0c;在配置失败时可以恢复 cd /etc/yum.repos.d mkdir back mv *.repo back 二&#xff1a;下载阿里云yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.…

轻量封装WebGPU渲染系统示例<17>- 使用GPU Compute之元胞自动机(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/GameOfLifeTest.ts 系统特性: 1. 用户态与系统态隔离。 2. 高频调用与低频调用隔离。 3. 面向用户的易用性封装。 4. 渲染数据(内外部相关资源)和渲染机制分离。…

使用 Visio 绘制立方体

一、自带的立方体 点击&#xff0c;将其拖拽至空白画布中 点击立方体&#xff0c;可以拖拽立方体的边线改变形状&#xff0c;如下&#xff1a; 可以看到&#xff0c;立方体三个面的颜色是不同的&#xff0c;最上方的面颜色浅一些。 如果想要三个面的颜色相同&#xff0c;先点击…

项目文章 | 总石油烃-重金属污染与土壤微生态系统:细菌多样性、组装和生态功能研究

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组许科研服务的易基因。 2023年9月30日&#xff0c;中南大学张杜博士为第一作者、李骞教授为通讯作者在《Chemosphere》杂志上发表题为“Effects of single and combined contamination of total petroleum hydr…

收银系统费率哪家低

收银软件能帮助店铺管好货和账&#xff0c;受到不少店家的喜爱。 如果只是为了收钱&#xff0c;直接微信或者支付宝就好了&#xff0c;但是如果要管理商品、销售&#xff0c;那就需要上一个收银软件&#xff0c;谁做生意不是为了赚点钱&#xff0c;不能开源只能节流了。 上线收…

【Redis】Java连接redis进行数据访问及项目的实例应用场景

目录 一、连接 二、数据访问 1. 字符串(String) 2. 哈希(Hash) 3. 列表(List) 4. 集合(Set) 三、项目应用 1. 作用 2. 实例 一、连接 打开开发工具( IDEA ) &#xff0c;在需要连接Redis的项目中&#xff0c;找到 pom.xml 配置文件导入依赖 在pom.xml 配置文件中导入以…

MySQL表的增删改查(基础且保姆级的教程)

CRUD 1.注释:在SQL中可以使用"--空格 描述"来表示注释说明 2.CRUD即增加(Create), 查询(Retrieve), 更新(Update),删除(Delete)四个单词首字母的缩写 新增(Create) 简述(一般写法): insert into 表名 values(列,列...) ->给出列的数目和类型,都是要和表结构匹配…

vue3 组件篇 Icon

文章目录 组件介绍如何在项目中搭建iconfont字体图标库快速创建一套iconfont修改 或 新增iconfont 组件安装与使用组件代码参数说明关于dxui组件库 组件介绍 Icon&#xff08;图标&#xff09;组件是一种常见的用户界面元素&#xff0c;用于在网页、移动应用和桌面应用中显示图…

世微LED 大功率升压恒流驱动芯片 平板显示LED背光板灯串恒流控制器 AP9193

概述 AP9193 是一款高效率、高精度的升 压型大功率 LED 灯恒流驱动控制芯片。 AP9193 内置高精度误差放大器&#xff0c;固 定关断时间控制电路&#xff0c;恒流驱动电路等&#xff0c; 特别适合大功率、多个高亮度 LED 灯的串 恒流驱动。 AP9193 采用固定关断时间的控制方 式…

【验证码系列】Google验证码从数据训练到机器自动识别算法构建

文章目录 1. 写在前面2. CSCI级设计决策2.1. Google验证码突防关联2.2. Google验证码突防行为设计决策 3. Google验证码突防体系结构设计3.1. Google验证码突防部件3.1.2. Google验证码突防组成 3.2. Google验证码突防软件3.2.1. Google验证码突防软件体系结构3.2.2. Google验证…

网页JS代码,加密与不加密的区别

网页中用JS实现的功能&#xff0c;不加密时&#xff0c;是对所有访问者透明的&#xff0c;任何人都可以直接查看、分析其中的功能逻辑。而经混淆加密后的JS&#xff0c;以密文形式存在&#xff0c;可防止它人窥探。 例1&#xff0c;某网站JS代码&#xff1a; 使用JShaman对图中…

Airpods - 放到洗衣机里洗,最后成功救回 Airpods Pro,功能恢复如初!

前几天加班回来很晚了&#xff0c;倒头就睡&#xff0c;耳机放在裤兜子里&#xff0c;因为第二天是周末&#xff0c;睡到自然醒&#xff0c;没想到打开洗衣机洗衣服也没想起来耳机还在兜里。&#xff08;此时想抽自己的大嘴巴子&#xff09;洗完衣服去晒衣服&#xff0c;发现耳…

自动识别图片文字表格:高效神器,告别繁琐手动操作

现代科技的快速发展为我们的生活带来了许多便利和效率提升。在数据处理和文档管理方面&#xff0c;自动化技术也日益成熟和普及。一项非常有用的技术是自动识别文字生成表格&#xff0c;它可以将大量的图片识别成文本并转换为表格形式&#xff0c;使得数据的整理和分析更加简便…

【CIO人物展】国家能源集团信息技术主管王爱军:中国企业数智化转型升级的内在驱动力...

王爱军 本文由国家能源集团信息技术主管王爱军投递并参与《2023中国数智化转型升级优秀CIO》榜单/奖项评选。丨推荐企业—锐捷网络 大数据产业创新服务媒体 ——聚焦数据 改变商业 随着全球信息化和网络化的进程日益加速&#xff0c;数字化转型已经成为当下各大企业追求的核心…