Files
ai-proj-helper/skills-integration/feishu-bitable-plugin/skills/SKILL.md
John Qiu 712063071c refactor: 通用技能按类别拆分为独立目录
skills/ → skills-dev(9), skills-req(10), skills-ops(4),
skills-integration(8), skills-biz(4), skills-workflow(7)

generate-marketplace.py 改为自动扫描所有 skills-* 目录。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 11:31:58 +10:30

3.2 KiB

name, description
name description
feishu-bitable 飞书多维表格操作。用于记录增删改查、批量操作、筛选排序、数据同步。当需要操作飞书多维表格时使用。

飞书多维表格 (Bitable)

URL 结构

https://xxx.feishu.cn/base/BascXXX?table=tblXXX&view=vewXXX
                          └── app_token  └── table_id

核心操作

列出记录

def list_records(app_token, table_id, filter_str=None, page_size=100):
    url = f"https://open.feishu.cn/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records"
    params = {"page_size": page_size}
    if filter_str:
        params["filter"] = filter_str
    response = requests.get(url, headers=headers, params=params)
    return response.json()["data"]["items"]

创建记录

def create_record(app_token, table_id, fields):
    url = f"https://open.feishu.cn/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records"
    response = requests.post(url, headers=headers, json={"fields": fields})
    return response.json()["data"]["record"]

# 示例
create_record("BascXXX", "tblXXX", {"任务名称": "完成开发", "状态": "进行中"})

批量创建 (最多 500 条)

url = f".../records/batch_create"
requests.post(url, headers=headers, json={"records": [{"fields": {...}}, ...]})

更新记录

def update_record(app_token, table_id, record_id, fields):
    url = f".../records/{record_id}"
    response = requests.put(url, headers=headers, json={"fields": fields})
    return response.json()["data"]["record"]

删除记录

def delete_record(app_token, table_id, record_id):
    url = f".../records/{record_id}"
    return requests.delete(url, headers=headers).json()

筛选条件

# 等于
'CurrentValue.[状态]="进行中"'

# 包含
'CurrentValue.[标题].contains("任务")'

# 大于(数字/日期)
'CurrentValue.[优先级]>2'

# 组合
'AND(CurrentValue.[状态]="进行中", CurrentValue.[优先级]>2)'
'OR(CurrentValue.[状态]="完成", CurrentValue.[状态]="归档")'

# 空值
'CurrentValue.[截止日期]=BLANK()'

排序

params = {
    "sort": '[{"field_name":"优先级","desc":true}]'
}

字段类型

类型 值格式
文本 "字符串"
数字 123
单选 "选项值"
多选 ["选项1", "选项2"]
日期 1706400000000 (毫秒时间戳)
人员 [{"id": "ou_xxx"}]
复选框 true/false
链接 {"link": "https://...", "text": "显示文本"}

完整工具类

~/.claude/skills/feishu/feishu_bitable.py

from feishu_bitable import FeishuBitable

bitable = FeishuBitable()
records = bitable.list_records("BascXXX", "tblXXX")
bitable.create_record("BascXXX", "tblXXX", {"名称": "测试"})
bitable.batch_create("BascXXX", "tblXXX", [{"名称": "1"}, {"名称": "2"}])

常见场景

# 获取待处理任务
tasks = bitable.list_records("BascXXX", "tblXXX",
    filter_str='CurrentValue.[状态]="待处理"')

# 批量更新状态
for task in tasks:
    bitable.update_record("BascXXX", "tblXXX",
        task["record_id"], {"状态": "已完成"})