feat: 飞书知识库读写工具:增删查改节点、写入页面、创建早报、记录踩坑,支持 Markdown 表格原生渲染。

This commit is contained in:
NightStar
2026-07-30 15:50:17 +08:00
commit ceb3b6c9a8
13 changed files with 1029 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
#!/usr/bin/env python3
"""创建知识库节点"""
import json, sys, os, argparse
import subprocess
SPACE_ID = os.environ.get('FEISHU_SPACE_ID', '7664817589230570761')
def get_token():
r = subprocess.run(['python3', os.path.join(os.path.dirname(__file__), 'init_token.py')],
capture_output=True, text=True)
return json.loads(r.stdout)['token']
def create_node(title, parent_token, obj_type='docx'):
import requests
token = get_token()
h = {'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json'}
r = requests.post(
f'https://open.feishu.cn/open-apis/wiki/v2/spaces/{SPACE_ID}/nodes',
headers=h,
json={'obj_type': obj_type, 'node_type': 'origin', 'parent_node_token': parent_token, 'title': title}
)
data = r.json()
if data.get('code') != 0:
raise Exception(f"API error: {data.get('msg')} - {json.dumps(data, ensure_ascii=False)}")
return data['data']['node']
if __name__ == '__main__':
p = argparse.ArgumentParser()
p.add_argument('--title', required=True)
p.add_argument('--parent', required=True)
p.add_argument('--obj-type', default='docx')
args = p.parse_args()
try:
node = create_node(args.title, args.parent, args.obj_type)
print(json.dumps(node, indent=2, ensure_ascii=False))
except Exception as e:
print(f'Error: {e}', file=sys.stderr)
sys.exit(1)