Python+飛書文檔+機器人
今天的主題是:使用Python聯動飛書文檔+機器人,實現一個專屬的記賬助手,這篇文章如果對你幫助極大,歡迎你分享給你的朋友、她、他,一起成長。
也歡迎大家留言,說說自己想看什么主題的Python文章,留言越具體,我寫的越快,比如留言:我想看Python 自動操作Excel 相關文章。
如果你有具體的需求想通過使用Python實現自動化,那將更好,歡迎私聊我微信,一起交流探討。
-
核心邏輯
-
實踐出真知
- 創建一個飛書應用
- 對接飛書Excel
- 記賬功能對接到飛書機器人
核心邏輯
1、通過關鍵詞觸發機器人記賬,比如/fs 支出 微信 18 午飯
,其中/fs
為觸發關鍵詞,后面的四項分別是:類型、支付渠道、金額、備注。
2、機器人識別到關鍵詞,調用飛書記賬功能函數,在該函數中對收到內容進行解析,并調用飛書文檔接口,將內容寫入飛書文檔。
3、機器人判斷飛書文檔寫入結果,寫入成功則返回記錄成功+文檔地址;寫入失敗則返回記錄失敗+錯誤信息。
微信效果:
飛書效果:
實踐出真知
首先你需要登錄飛書APP創建一個企業,這個過程很簡單,手機下載飛書APP即可,我這里就不貼圖了。
創建一個飛書應用
前提:你已經有了一個飛書帳號,并創建了一個個人企業。
飛書開放平臺地址:open.feishu.cn/app/
訪問 飛書開放平臺,點擊創建企業自建應用
,輸入應用相關信息即可。
創建成功后,在憑證與基礎信息
中可以看到應用的 App ID
和 App Secret
,后面有用。
點擊左側的添加應用能力
,點擊添加機器人功能。
沒添加這個后面調用會出現如下錯誤:
點擊左側的權限管理
,搜索電子表格
,將相關的兩個權限勾選開通。
再搜索消息
,開通發送接收消息權限,如下圖:
再搜索獲取用戶 user ID
,開通獲取用戶 user_id 權限,如下圖:
點擊確定并前往創建應用版本
。
在版本創建頁面點擊創建版本
,然后根據提示輸入版本號、更新說明、申請理由即可。
應用管理后臺:xxxxx.feishu.cn/admin/appCe…
xxxxx 改成自己的飛書主頁域名前綴
訪問上面應用管理后臺地址,審核通過即可。
對接飛書Excel
首先在飛書文檔里創建一個 Excel,獲取到Excel 鏈接,格式如下:
https://xxxxxx.feishu.cn/sheets/PQV*****************Uh?sheet=k****Y
其中PQV*****************Uh
是spreadsheetToken,k****Y
表格名稱,用于鎖定具體工作表。
本案例我們使用飛書追加數據接口:open.feishu.cn/document/se…
其中請求參數中 Authorization 獲取方法如下:
import requests
import jsondef get_access_token():url= "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal/" # 應用憑證里的 app id 和 app secret post_data = {"app_id": "cli_xxxxxxxx", "app_secret": "8xxxxxxxxxxxxxxxxxxk"}r = requests.post(url, data=post_data)access_token = r.json()["tenant_access_token"] return access_tokenheader = {"Content-Type": "application/json; charset=utf-8", "Authorization": f"Bearer {get_access_token()}"}
請求測試
# 記得換成自己的信息
spreadsheetToken = "Pxxxxxxxxxxxxh"
sheetId = "lxxxxV"
data_raw = {"valueRange": {"range": f"{sheetId}!A1:E3","values": [["2023/12/25","收入","微信","100","帳號 老表max"],["2023/12/25","支出","支付寶","10","買東西 老表max"],["2023/12/26","支出","支付寶","19.9","買東西 老表max"],]}
}
url = f"https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/{spreadsheetToken}/values_append" r2 = requests.post(url, data=json.dumps(data_raw), headers=header) #請求寫入
print( r2.json()["msg"]) #輸出來判斷寫入是否成功
結果:
記賬功能對接到飛書機器人
開通消息事件,接收消息
如果你想對接到飛書,得有一個云服務器用來接收用戶發給飛書機器人的消息,并返回處理后的結果給飛書用戶。
或者本地部署,然后內網穿透方法也行(不是長久之計)。
開通消息事件之前,需要先在服務器部署一個簡單 web 服務用于接收消息,如下圖,沒啥特別要求,用 flask 快速寫一個簡單的代碼,如下,
from flask import Flask, request, jsonifyapp = Flask(__name__)@app.route('/func', methods=['POST'])
def all_func():try:data = request.json # 解析收到的 JSON 數據print(data)if data:# 原樣返回數據return jsonify(data)else:return "Missing data", 400except Exception as e:return str(e), 500if __name__ == '__main__':app.run(debug=True, port=8003, host="0.0.0.0")
將上面代碼寫入服務器的 feishu.py 文件,然后運行python feishu.py
即可,
默認配置鏈接為:http://你的服務器公網IP:8003/func
然后在飛書管理后臺,事件與回調
頁面配置驗證接口是否OK,沒問題點保存
即可。
然后點擊添加事件
,搜索接收消息
,添加對應事件。
點擊開啟獲取用戶發給機器人的單聊消息
和獲取用戶在群組中@機器人的消息
權限。
然后發布一個新版本。
這時我們從飛書發送消息給機器人,我們就可以在服務器獲取到對應消息了。
飛書:
服務器:
飛書主動回復用戶實現
在前面實踐部分,我們已經開通過了接收消息
權限,這里直接上請求代碼。
'''
發送消息
doc-link https://open.feishu.cn/document/server-docs/im-v1/message/create
接口限制:1000 次/分鐘、50 次/秒receive_id_type值:
- 私聊 user_id
- 群聊 chat_idmsg_type:
doc-link https://open.feishu.cn/document/server-docs/im-v1/message-content-description/create_json'''
def fs_send_msg(headers, post_data, receive_id_type):url= f"https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type={receive_id_type}" r = requests.post(url, headers=headers, data=json.dumps(post_data))result = r.json()return result
測試請求:
# 這里 user_id 可以怎么獲取?
# 在前面`消息事件`返回結果里面有,可以從里面獲取
receive_id_type = "user_id"
receive_id = "xxxxx"
msg_type = "text"
content = "{\"text\": \"你好\"}"post_data = {"receive_id": receive_id,"msg_type": msg_type,"content": content,# "uuid": "選填,每次調用前請更換,如a0d69e20-1dd1-458b-k525-dfeca4015204"}
result = fs_send_msg(headers, post_data, receive_id_type)
結果: 飛書:
整合代碼實現自動記賬
邏輯思路:
實現效果:
整合代碼較多,源碼已分享到 Github,項目地址:github.com/XksA-me/Sim…
對接到微信
通過前面操作,我們已經完成了Python代碼和飛書的對接,將該功能加入到機器人就比較簡單了。
流程我已經在文章最開頭分享了,大家可以根據需要去實踐,至于如何開發機器人,大家可以github搜索下相關項目。后面也會將相關實現更新到開源項目中,歡迎關注支持。
哈嘍,大家好,看到這里你真是太帥太美了,快快動手吧!
我是老表,學 Python 編程,找老表就對了。
老表寫教程,就是要寫的小白也能懂!有問題,快來評論區 up up up~ (打亢奮素式學習法)
本文轉自 https://juejin.cn/post/7340093152861159424,如有侵權,請聯系刪除。
如果你對Python感興趣,想要學習python,這里給大家分享一份Python全套學習資料,都是我自己學習時整理的,希望可以幫到你,一起加油!
😝有需要的小伙伴,可以V掃描下方二維碼免費領取🆓
?
1??零基礎入門
① 學習路線
對于從來沒有接觸過Python的同學,我們幫你準備了詳細的學習成長路線圖。可以說是最科學最系統的學習路線,你可以按照上面的知識點去找對應的學習資源,保證自己學得較為全面。
② 路線對應學習視頻
還有很多適合0基礎入門的學習視頻,有了這些視頻,輕輕松松上手Python~
③練習題
每節視頻課后,都有對應的練習題哦,可以檢驗學習成果哈哈!
2??國內外Python書籍、文檔
① 文檔和書籍資料
3??Python工具包+項目源碼合集
①Python工具包
學習Python常用的開發軟件都在這里了!每個都有詳細的安裝教程,保證你可以安裝成功哦!
②Python實戰案例
光學理論是沒用的,要學會跟著一起敲代碼,動手實操,才能將自己的所學運用到實際當中去,這時候可以搞點實戰案例來學習。100+實戰案例源碼等你來拿!
③Python小游戲源碼
如果覺得上面的實戰案例有點枯燥,可以試試自己用Python編寫小游戲,讓你的學習過程中增添一點趣味!
4??Python面試題
我們學會了Python之后,有了技能就可以出去找工作啦!下面這些面試題是都來自阿里、騰訊、字節等一線互聯網大廠,并且有阿里大佬給出了權威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。
上述所有資料 ?? ,朋友們如果有需要的,可以掃描下方👇👇👇二維碼免費領取🆓
?