#!/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)