飛書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 secretpost_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文檔請求流程分析,各位大佬在開發過程遇到問題,歡迎私信交流,感謝大家!!!