飞书API开发之自动更新共享表格
- 天马行空
- 需求
- 需求拆解
- 1、网站数据爬取
- 2、飞书API调用
- 2.1 开发流程
- 2.2 创建应用
- 2.3 配置应用
- 2.4 发布应用
- 2.5 修改表格权限
- 2.6 获取tenant_access_token
- 2.7 调用API插入数据
- 总结
天马行空
之前一直都是更新的爬虫逆向内容,工作中基本都用不到,这篇文章主要分享一下工作中结合爬虫开发的一个小内容。
需求
将某个网站每日更新的数据同步至飞书的共享表格中
需求拆解
1、网站数据爬取
这一块不是本篇内容的重点,就不写了,需要注意的点就是爬取返回的数据需要符合飞书API调用的数据格式即可。
2、飞书API调用
学习飞书的API调用首选肯定是飞书开放平台的开发文档,下面附上网址。
https://open.feishu.cn/document/home/index
2.1 开发流程
上述为飞书官方的一个开发流程,下面也将按照这个流程进行开发
2.2 创建应用
https://open.feishu.cn/app?lang=zh-CN
创建信息按需进行填写即可
2.3 配置应用
配置应用能力
配置权限管理
2.4 发布应用
填写相关信息后发布应用即可
应用发布后,记录应用凭证信息
2.5 修改表格权限
2.6 获取tenant_access_token
下面提供一个函数,用于获取tenant_access_token,其中app_id和app_secret需替换为应用凭证信息
def get_tat(self):
url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal/"
# 应用凭证里的 app id 和 app secret
post_data = {"app_id": "脱敏", "app_secret": '脱敏'}
r = requests.post(url, data=post_data)
tat = r.json()["tenant_access_token"]
self.logger.info(f'获取到tenant_access_token:{tat}')
return tat
2.7 调用API插入数据
https://脱敏.feishu.cn/sheets/YfjxsQSzQhxXBDt2MJpcsQl3npc?sheet=3SbLYY
共享表格网址如上,YfjxsQSzQhxXBDt2MJpcsQl3npc为表格key值,3SbLYY为子表key值
可以使用下列函数对表格插入数据,insert_data为需要插入的数据,具体数据格式建议大家前往开放文档进行学习
def insert_feishu(self, tat, insert_data):
url = "https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/YfjxsQSzQhxXBDt2MJpcsQl3npc/values" # YfjxsQSzQhxXBDt2MJpcsQl3npc—表格唯一值
header = {"Content-Type": "application/json", "Authorization": "Bearer " + str(tat)} # 请求头
post_data = {"valueRange": {"range": f"23XPNa!A2:AQ", # 21LOMz——子表唯一值
"values": insert_data}}
r2 = requests.put(url, data=json.dumps(post_data), headers=header) # 请求写入
总结
本篇文章主要简单介绍飞书API文档请求流程分析,各位大佬在开发过程遇到问题,欢迎私信交流,感谢大家!!!