通過扣子平臺將數據寫入飛書多維表格

目錄

1.1?創建飛書開放平臺應用

1.2 創建飛書多維表格

1.3 創建扣子平臺插件


1.1?創建飛書開放平臺應用?

? ?1.1.1 打開地址:飛書開放平臺,點擊創建應用

注:商店應用需要申請ISV資質,填寫企業主體信息,個人的話,選擇【創建企業自建應用】
商店應用:

企業自建應用?

?

點擊【創建】按鈕創建成功后如下:

?配置應用操作多維表格的權限

?配置完成后需要發布應用才會生效,進入【版本管理與發布 _ 創建版本】

?

?發布完成后,添加多維表格,并且添加應用權限

1.2?創建飛書多維表格

登錄飛書 _> 新建多維表格:https://fcnm73x3rsfr.feishu.cn/drive/home

將應用添加為多維表格協作者

?

?

通過應用API向多維表格插入一條記錄,進入飛書開放平臺-> 權限管理 -> 進入API調試臺。

點擊擊【相關API事件 _ API新增多條記錄】跳轉到API開發文檔,可以打開【API調試臺】進行接口調試

?

獲取app_token(即base_id)?和 table_id?

?

?調用成功

?通過飛書開放平臺應用將數據寫入多維表格成功

企業自建應用開發流程文檔:
https://open.feishu.cn/document/home/introduction-to-custom-app-development/self-built-application-development-process

1.3?創建扣子平臺插件

1.3.1 登錄扣子平臺:扣子

創建插件

?

?創建工具(插件包含一個或多個工具)

?添加輸入參數

?

?輸入參數添加成功后,此處可以通過輸入參數首字母,就是自動彈出輸入參數的提示下拉框供選擇

?代碼寫完后,點此處運行

?

?

?此處需要替換為自己的飛書應用id,才能獲取到正確的token

?飛書開放平臺的app_id 和 app_secret在這里獲取

?返回400或403報錯參考飛書開放平臺API:新增多條記錄 - 服務端 API - 飛書開放平臺

?

?上面標紅框的部分需要替換為自己飛書多維表格的base_id和table_id,前面創建飛書多維表格流程中有標識base_id(即app_token)和table_id 的地方

以上報錯403是飛書開放平臺的應用沒有飛書多維表格的權限,同時檢查app_id和app_secret,如果這兩個值不正確,也會報403

1.?需要在多維表格中將飛書應用添加為協作者

?

?

?2.?需要開啟飛書多維表格高級權限

?

?前面添加的飛書應用協作者會在這里顯示

?再次點擊運行按鈕,顯示成功,同時飛書多維表格會新增相應數據

?

?扣子平臺插件工具輸入參數如下:

{"c_index":1,

"c_data" : "\n{\n \"人物列表\": [\n {\n \"姓名\": \"陳德修\",\n \"年齡\": \"50歲左右\",\n \"性別\": \"男\",\n \"身高\": \"\",\n \"體重\": \"\",\n \"五官特征\": \"戴著厚厚的金絲眼鏡\",\n \"身形描述\": \"地中海發型\",\n \"性格標簽\": \"德高望重;醫者仁心\",\n \"穿著打扮\": \"醫生職業裝\",\n \"神態動作\": \"無奈地嘆息;遞診斷書—動作沉穩\"\n },\n {\n \"姓名\": \"莊子昂\",\n \"年齡\": \"18歲\",\n \"性別\": \"男\",\n \"身高\": \"\",\n \"體重\": \"\",\n \"五官特征\": \"斯文氣質;眼角有淚痕—動態\",\n \"身形描述\": \"青蔥少年\",\n \"性格標簽\": \"循規蹈矩;情緒壓抑;故作輕松\",\n \"穿著打扮\": \"艷俗花襯衫—五彩斑斕;沾消毒水味的衣服\",\n \"神態動作\": \"渾渾噩噩走路—撞倒共享單車;手顫抖握診斷書;擠苦澀笑容\"\n },\n {\n \"姓名\": \"林慕詩\",\n \"年齡\": \"約18歲\",\n \"性別\": \"女\",\n \"身高\": \"\",\n \"體重\": \"\",\n \"五官特征\": \"丹鳳眼;牛奶般白皙肌膚\",\n \"身形描述\": \"頗具規模的胸脯—動態起伏\",\n \"性格標簽\": \"傲嬌;外冷內熱\",\n \"穿著打扮\": \"\",\n \"神態動作\": \"輕抿奶茶—動作優雅;瞪丹鳳眼質問\"\n },\n {\n \"姓名\": \"李黃軒\",\n \"年齡\": \"約18歲\",\n \"性別\": \"男\",\n \"身高\": \"\",\n \"體重\": \"\",\n \"五官特征\": \"\",\n \"身形描述\": \"瘦高個\",\n \"性格標簽\": \"活潑;愛調侃\",\n \"穿著打扮\": \"\",\n \"神態動作\": \"大笑著調侃;攬肩膀—動作親昵\"\n }\n ]\n}\n"

}

?扣子平臺插件工具代碼如下:

import json
import requests
from runtime import Args
from typings.write_data_to_feishu_excel.write_data_to_feishu_excel import Input, Output"""
Each file needs to export a function named `handler`. This function is the entrance to the Tool.Parameters:
args: parameters of the entry function.
args.input - input parameters, you can get test input value by args.input.xxx.
args.logger - logger instance used to print logs, injected by runtime.Remember to fill in input/output in Metadata, it helps LLM to recognize and use tool.Return:
The return data of the function, which should match the declared output parameters.
"""class Output:def __init__(self, code: int, message: str, data: str):self.code = codeself.message = messageself.data = data# 此處handler命名不能更改
def handler(args: Args[Input])->Output:args.logger.info(f"輸入參數{args.input}")# 檢查 args.input 是否為 Noneif args.input is None:return Output(code=400, message="args.input 為 None,請檢查傳入的參", data="")# 替換為實際值token = getFeishuToken(args)args.logger.info(f"當前token值:{token}")base_id = "飛書多維表格的base_id"table_id = "飛書多維表格的table_id"characters = args.input.c_dataif not characters:return Output(code=500, message="缺少必要參數: c_data",data="")json_data = getCharactersData(args, characters)args.logger.info(f"寫入數據:{json_data}")# 構造請求體data = {"records": json_data# "records":  [#     {#         "fields": json_obj#     }# ]}# 單行數據寫入API地址#https://open.feishu.cn/open-apis/bitable/v1/apps/飛書多維表格的base_id/tables/飛書多維表格的table_id/records# 多行數據寫入,調用寫入 APIurl = f"https://open.feishu.cn/open-apis/bitable/v1/apps/{base_id}/tables/{table_id}/records/batch_create"args.logger.info(f"飛書多維表格寫入地址{url}")headers = {"Authorization": f"Bearer {token}","Content-Type": "application/json",#'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',}try:response = requests.post(url, json=data , headers=headers)response.raise_for_status()args.logger.info(f"Data written result:{response.json()}")except requests.exceptions.RequestException as e:args.logger.info(f"Request error:{e}")return Output(code=500, message="失敗", data="API請求異常")except ValueError as e:args.logger.info(f"JSON parsing error:{e}")return Output(code=500, message="失敗", data="json數據轉換異常")except Exception as e:args.logger.info(f"An unknown error occurred:{e}")return Output(code=500, message="失敗", data=f"An unknown error occurred:{e}")return Output(code=200, message="成功", data=str(data))# 解析輸入的內容(示例數據是json格式)
def getCharactersData(args, input_data):args.logger.info(f"當前輸入參數:{input_data}")json_data = [] # 如果輸入是字符串則解析,否則直接使用if isinstance(input_data, str):# 清除輸入內容中的json標識json_data = json.loads(input_data.replace("```","").replace("json",""))else:# 假設已經是解析好的對象json_data = input_data# 強制轉換為列表(確保可迭代性)(示例)#if not isinstance(json_data, list):#    json_data = [json_data]# 自動獲取JSON鍵作為列名(示例)#columns = list(flattened_data[0].keys())# 扁平化數據結構flattened_data = []for index, item in enumerate(json_data["人物列表"]):# 3.1 確保item是字典類型#if not isinstance(item, dict):# 非字典類型特殊處理#    item = {"raw_data": item}  # 需確保所有字段存在(防止KeyError),此處json的key名和飛書多維表格列名一致,故使用copy方法flat_item = item.copy()flat_item['章節'] = str(args.input.c_index)# 若json的key名和飛書多維表格列名不一致,此處進行轉換name為飛書多維表格列名,姓名為json數據的key名# flat_item = {#     'name': item.get('姓名', ""),#     'age': item.get('年齡區間', ""),#     'features': item.get('五官特征', ""),#     'body': item.get('身形描述', ""),#     'temperament': item.get('性格標簽', ""),#     'dress': item.get('穿著打扮', ""),#     'look': item.get('神態動作', ""),#     'sex': item.get('性別', ""),#     'height': item.get('身高', ""),#     'weight': item.get('體重', "")# }# 3.3 若輸入的json數據存在嵌套,處理嵌套結構(示例)if 'appearance' in item:appearance = item.get('appearance', {})flat_item.update({'features': str(appearance.get('五官特征', '')),'body': str(appearance.get('身形描述', ''))})# 飛書開放平臺API中行數據是放在fields對象中的,多行就是多個fields對象flattened_data.append({"fields": flat_item})return flattened_data# 獲取訪問令牌token
def getFeishuToken(args):token_url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal"token_response = requests.post(token_url, json={"app_id": "飛書開放平臺應用的app_id","app_secret": "飛書開放平臺應用的app_secret"})#注意:令牌有效期為 2 小時,需定期刷新#響應token:{'code': 0, 'expire': 7200, 'msg': 'ok', 'tenant_access_token': 't-g104439u6OYLPGRXP656CNK27CSDYNNNUFTMKRFT'}res = token_response.json()args.logger.info(f"響應token{res}")return token_response.json()["tenant_access_token"]

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/76012.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76012.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/76012.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MYSQL數據庫語法補充

一,DQL基礎查詢 DQL(Data Query Language)數據查詢語言,可以單表查詢,也可以多表查詢 語法: select 查詢結果 from 表名 where 條件; 特點: 查詢結果可以是:表中的字段…

Redis到底能不能做主數據庫?

張三拍案而起:“Redis 是緩存數據庫,怎么能當主數據庫用?簡直是天方夜譚!” 李四冷笑回應:“你沒用過,憑什么說不行?我已經用 Redis 做主數據庫好幾年了,系統穩定得像鐵板一塊&…

flutter 項目結構目錄以及pubspec.ymal等文件描述

在Flutter項目中,目錄結構和pubspec.yaml文件是非常重要的組成部分,它們定義了項目的結構、依賴管理以及如何構建和運行項目。下面我將詳細解釋這些關鍵元素: 1. Flutter項目目錄結構 Flutter項目的標準目錄結構通常如下所示: …

CentOS 環境下 MySQL 數據庫全部備份的操作指南

最近阿里云個人服務到期,因為是很久之前買的測試機器,配置較低,上面運行的有技術博客 和以往的測試項目,所以準備放棄掉。 需要備份下上面的表結構和數據、以及代碼倉庫。 下面是一個完整的 CentOS 環境下 MySQL 數據庫全部備份…

ecplise 工具 沒有Java EE Tools 選項

Java EE Tools 是將項目轉換為web項目的重要的快捷鍵,如果進行web開發 那是不可或缺的 該工具是一個插件,可以作為插件安裝到ecplise上 安裝步驟如下: 找到help-->install new software 在彈出的頁面中 work with中輸入:Jun…

544 eff.c 1761 優化設計文檔

1:性能分析 1.1性能對比 oneapi 與hygonGcc性能對比發現,544課題中的eff.c 1761循環處,oneapi 進行了循環向量化, gcc使用標量,循環源碼前加 #pragma clang loop vectorize(disable) 找出oneapi在該循環處關閉和開啟loop vect 的性能差距&a…

LeetCode.3396.使數組元素互不相同所需的最少操作次數

3396. 使數組元素互不相同所需的最少操作次數 給你一個整數數組 nums,你需要確保數組中的元素 互不相同 。為此,你可以執行以下操作任意次: 從數組的開頭移除 3 個元素。如果數組中元素少于 3 個,則移除所有剩余元素。 注意&…

【已完結STM32】--自學江協科技筆記匯總

以下學習筆記代碼均來自b站江協科技視頻 筆記匯總完結 文章筆記對應江科大視頻新建工程【2-2】新建工程江科大STM32-GPIO輸出 點亮LED,LED閃爍,LED流水燈,蜂鳴器(學習筆記)_unit32-t rcc-apb2periph-CSDN博客 【3-1】…

QML Loader:加載組件與狀態監控

目錄 引言相關閱讀工程結構示例一:從文件加載組件 (LoaderFile.qml)代碼實現被加載的組件:MyComponent.qml代碼解析運行效果 示例二:直接加載Component對象 (LoaderComponent.qml)代碼實現代碼解析運行效果 示例三:監控加載狀態 (…

K8S核心技術點

Pod,Service和Deployment的關系 Pod:Kubernetes 中最小的部署單元,用于運行容器化應用。 Service:提供服務發現和負載均衡,為 Pod 提供穩定的網絡端點,ClusterIP,NodePort,LoadBala…

Spring 核心注解深度解析:@Autowired、@Repository 與它們的協作關系

引言 在 Spring 框架中,?依賴注入(DI)?? 是實現松耦合架構的核心機制。Autowired 和 Repository 作為兩個高頻使用的注解,分別承擔著 ?依賴裝配? 和 ?數據訪問層標識? 的關鍵職責。本文將深入探討它們的功能特性、協作模式…

[Linux]從零開始的ARM Linux交叉編譯與.so文件鏈接教程

一、前言 最近在項目需要將C版本的opencv集成到原本的代碼中從而進行一些簡單的圖像處理。但是在這其中遇到了一些問題,首先就是原本的opencv我們需要在x86的架構上進行編譯然后將其集成到我們的項目中,這里我們到底應該將opencv編譯為x86架構的還是編譯…

svelte+vite+ts+melt-ui從0到1完整框架搭建

框架太“重”了:通常一個小型項目只由少數幾個簡單頁面構成,如果使用 Vue 或者 React 這些框架來研發的話,有點“大材小用”了。構建的產物中包含了不少框架運行時代碼(虛擬 DOM、響應式、狀態管理等),這些代碼對于小型項目而言是…

無法看到新安裝的 JDK 17

在 Linux 系統中使用 update-alternatives --config java 無法看到新安裝的 JDK 17,可能是由于 JDK 未正確注冊到系統備選列表中。 一、原因分析 JDK 未注冊到 update-alternatives update-alternatives 工具需要手動注冊 JDK 路徑后才能識別新版本。如果僅安裝 JDK…

鼎訊信通 便攜式雷達信號干擾模擬器:打造實戰化電磁環境的新利器

在現代戰爭中,電磁環境的復雜性直接影響著雷達裝備的性能和作戰效果。面對敵方日益精進的電子戰手段,如何提升雷達設備的抗干擾能力,確保其在實戰環境中的穩定性和可靠性,已成為各國軍隊和科研機構的重要課題。 為此,…

【AI提示詞】決策專家

提示說明 決策專家可以幫助你進行科學決策,盡可能避免錯誤,提升決策成功的概率。 提示詞 # Role : 決策專家決策,是面對不容易判斷優劣的幾個選項,做出正確的選擇。說白了,決策就是拿個主意。決策專家是基于科學決策…

力扣Hot100題,刷題

力扣HOT100 - 1. 兩數之和 解題思路&#xff1a; 解法一&#xff1a;暴力 class Solution {public int[] twoSum(int[] nums, int target) {int n nums.length;for (int i 0; i < n; i)for (int j i 1; j < n; j) {if (target nums[i] nums[j])return new int[]…

uni-app ucharts自定義換行tooltips

實現效果&#xff1a; 第一步&#xff1a;在uni_modules文件夾下找到config-ucharts.js和u-charts.js文件 第二步&#xff1a;在config-ucharts.js文件中配置換行格式 // 換行格式"wrapTooltip":function(item, category, index, opts){return item.name&#xff1a;…

國標GB28181視頻平臺EasyCVR順應智慧農業自動化趨勢,打造大棚實時視頻監控防線

一、方案背景 近年來&#xff0c;溫室大棚種植技術憑借其顯著的優勢&#xff0c;在提升農作物產量和質量、豐富農產品供應方面發揮了重要的作用&#xff0c;極大改善了人們的生活水平&#xff0c;得到了廣泛的推廣和應用。大棚內的溫度、濕度、光照度和二氧化碳濃度等環境因素…

InternVideo2.5:Empowering Video MLLMs with Long and Rich Context Modeling

一、TL&#xff1b;DR InternVideo2.5通過LRC建模來提升MLLM的性能。層次化token壓縮和任務偏好優化&#xff08;mask時空 head&#xff09;整合到一個框架中&#xff0c;并通過自適應層次化token壓縮來開發緊湊的時空表征MVBench/Perception Test/EgoSchema/MLVU數據benchmar…