72 lines
2.5 KiB
Bash
Executable File
72 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
||
# 飞书多维表格Bot操作脚本
|
||
ACTION="$1"
|
||
APP_TOKEN="$2"
|
||
TABLE_ID="$3"
|
||
RECORD_ID="$4"
|
||
FIELDS="$5"
|
||
PAGE_SIZE="${5:-50}"
|
||
CRED_FILE="/root/.openclaw/credentials/xiaoyan/config.json"
|
||
APP_ID=$(jq -r '.apps[0].appId' "$CRED_FILE")
|
||
APP_SECRET=$(jq -r '.apps[0].appSecret' "$CRED_FILE")
|
||
# 获取tenant_access_token
|
||
get_token() {
|
||
TOKEN=$(curl -s -X POST "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal" \
|
||
-H "Content-Type: application/json" \
|
||
-d "{\"app_id\":\"$APP_ID\",\"app_secret\":\"$APP_SECRET\"}" \
|
||
| jq -r '.tenant_access_token')
|
||
echo "$TOKEN"
|
||
}
|
||
TOKEN=$(get_token)
|
||
case "$ACTION" in
|
||
list_tables)
|
||
if [ -z "$APP_TOKEN" ]; then
|
||
echo "参数错误:请传入app_token"
|
||
exit 1
|
||
fi
|
||
curl -s -X GET "https://open.feishu.cn/open-apis/bitable/v1/apps/$APP_TOKEN/tables" \
|
||
-H "Authorization: Bearer $TOKEN"
|
||
;;
|
||
list_records)
|
||
if [ -z "$APP_TOKEN" ] || [ -z "$TABLE_ID" ]; then
|
||
echo "参数错误:请传入app_token和table_id"
|
||
exit 1
|
||
fi
|
||
curl -s -X GET "https://open.feishu.cn/open-apis/bitable/v1/apps/$APP_TOKEN/tables/$TABLE_ID/records?page_size=$PAGE_SIZE" \
|
||
-H "Authorization: Bearer $TOKEN"
|
||
;;
|
||
create_record)
|
||
if [ -z "$APP_TOKEN" ] || [ -z "$TABLE_ID" ] || [ -z "$4" ]; then
|
||
echo "参数错误:请传入app_token、table_id和fields JSON"
|
||
exit 1
|
||
fi
|
||
FIELDS="$4"
|
||
curl -s -X POST "https://open.feishu.cn/open-apis/bitable/v1/apps/$APP_TOKEN/tables/$TABLE_ID/records" \
|
||
-H "Authorization: Bearer $TOKEN" \
|
||
-H "Content-Type: application/json" \
|
||
-d "{\"fields\":$FIELDS}"
|
||
;;
|
||
update_record)
|
||
if [ -z "$APP_TOKEN" ] || [ -z "$TABLE_ID" ] || [ -z "$RECORD_ID" ] || [ -z "$5" ]; then
|
||
echo "参数错误:请传入app_token、table_id、record_id和fields JSON"
|
||
exit 1
|
||
fi
|
||
FIELDS="$5"
|
||
curl -s -X PUT "https://open.feishu.cn/open-apis/bitable/v1/apps/$APP_TOKEN/tables/$TABLE_ID/records/$RECORD_ID" \
|
||
-H "Authorization: Bearer $TOKEN" \
|
||
-H "Content-Type: application/json" \
|
||
-d "{\"fields\":$FIELDS}"
|
||
;;
|
||
delete_record)
|
||
if [ -z "$APP_TOKEN" ] || [ -z "$TABLE_ID" ] || [ -z "$RECORD_ID" ]; then
|
||
echo "参数错误:请传入app_token、table_id和record_id"
|
||
exit 1
|
||
fi
|
||
curl -s -X DELETE "https://open.feishu.cn/open-apis/bitable/v1/apps/$APP_TOKEN/tables/$TABLE_ID/records/$RECORD_ID" \
|
||
-H "Authorization: Bearer $TOKEN"
|
||
;;
|
||
*)
|
||
echo "支持的操作:list_tables / list_records / create_record / update_record / delete_record"
|
||
exit 1
|
||
;;
|
||
esac |