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

使用飞书API自动化更新共享表格数据

飞书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文档请求流程分析,各位大佬在开发过程遇到问题,欢迎私信交流,感谢大家!!!

相关文章:

  • C++ 继承:面向对象编程的核心概念(一)
  • STL之list
  • Selenium之Web Driver常用属性
  • WPF ContentPresenter详解2
  • Docker-清理容器空间prune
  • 顺序表(C语言源码详解,附加测试代码)
  • 波斯白板(Persian Whiteboard)
  • MFC中如何判断一个窗口当前状态是显示还是隐藏
  • Python 异常处理完全指南
  • 基于YOLOv8深度学习的PCB缺陷检测识别系统【python源码+GUI界面+数据集+训练代码+登录界面】
  • [AI绘图] ComfyUI 中自定义节点插件安装方法
  • 雕琢健康生活,奏响养生乐章
  • 使用Geotools从DEM数据中读取指定位置的高程实战
  • 【图论】网络流算法入门
  • 初阶7 vector
  • Mybatis错误resultMap must match
  • [思路提供]Mysql主从复制时的网络延迟很高,如何调整MySQL复制参数
  • Conda命令合集【更新ing】
  • C语言基础要素(018):循环控制:break与continue
  • leetcode0525. 连续数组-medium
  • 华尔兹转岗与鲁比奥集权:特朗普政府人事震荡背后的深层危机
  • 李公明︱一周书记:数字文化的乌托邦精神与……算法时代的生存指南
  • 上海科创再出发:“造星”的城和“摘星”的人
  • 民生访谈|支持外贸企业拓内销,上海正抓紧制定便利措施
  • 山西太原小区爆炸事故已造成17人受伤
  • 证据公布!菲律宾6人非法登上铁线礁活动