daren_project/feishu/README.md

4.6 KiB
Raw Permalink Blame History

飞书数据同步工具

这个工具提供了与飞书多维表格进行数据同步的功能,支持双向同步:从飞书导入数据到数据库,以及从数据库导出数据到飞书。同时支持将达人数据同步到外部知识库。

功能特点

  • 从飞书多维表格导入数据到数据库
  • 从Excel文件更新数据库记录
  • 从数据库导出数据到飞书多维表格
  • 从特定数据库模型导入数据到飞书
  • 从自定义SQL查询导入数据到飞书
  • 将达人信息同步到外部知识库
  • 支持Gmail和飞书达人信息的统一管理
  • 支持自定义字段映射
  • 支持记录过滤和数量限制

使用方法

显示帮助信息

python feishu.py help

从飞书导入数据到数据库

python feishu.py sync_from_feishu

从Excel文件更新数据库记录

python feishu.py update_from_excel <excel文件路径>

从数据库导出数据到飞书多维表格

python feishu.py export_to_feishu [--handle 关键字] [--limit 数量]

例如导出Handle包含"tiktok"的前10条记录

python feishu.py export_to_feishu --handle tiktok --limit 10

从特定数据库模型导入数据到飞书

python feishu.py import_from_db <模型名称> [--filters 字段1=值1,字段2=值2,...] [--limit 数量]

支持的模型:

  • Data数据模型
  • KnowledgeBase知识库模型
  • FeishuCreator飞书创作者模型

例如,导入技术部的管理员数据:

python feishu.py import_from_db Data --filters type=admin,department=技术部 --limit 50

从自定义SQL查询导入数据到飞书

python feishu.py custom_import <sql_file>

SQL文件格式示例

-- 查询语句
SELECT id, name, type FROM your_table WHERE condition;

-- FIELD_MAPPING:
{
    "id": "飞书ID字段",
    "name": "飞书名称字段",
    "type": "飞书类型字段"
}

将达人信息同步到知识库

python feishu.py sync_to_kb --id <creator_id> | --handle <handle> | --email <email>

例如,同步特定达人信息到知识库:

python feishu.py sync_to_kb --handle tiktok_user123

示例

examples目录中提供了几个示例文件:

  • custom_query.sql自定义SQL查询示例包含字段映射
  • creator_kb_query.sql查询达人信息并检查知识库映射的SQL示例
  • sample_data_template.txtExcel导入模板说明

REST API接口

除了命令行工具外还提供了以下REST API接口

1. 飞书数据同步API

POST /api/feishu/sync

参数:

  • sync_type (可选):同步类型,默认为"all"
  • handle (可选)指定特定的达人Handle
  • create_kb (可选)是否创建知识库默认为false

2. 达人信息同步到知识库API

POST /api/feishu/to_kb

参数:

  • creator_idhandleemail:至少提供一个参数用于识别达人

3. 检查达人知识库API

POST /api/feishu/check_kb

参数:

  • creator_idhandleemail:至少提供一个参数用于识别达人

与Gmail集成

本工具支持与Gmail系统集成实现达人信息的统一管理

  1. 当通过飞书同步达人信息到知识库时会检查该达人是否已有Gmail映射
  2. 如果该达人邮箱已有Gmail映射则使用现有知识库
  3. 如果没有映射,则创建新的知识库并建立映射关系
  4. 知识库文档采用追加模式,保留历史记录

配置

飞书API配置位于代码中包括

  • APP_TOKEN飞书应用的AppToken
  • TABLE_ID飞书多维表格的TableID
  • USER_ACCESS_TOKEN用户访问令牌

如需修改这些配置,请编辑相应的函数中的变量。

注意事项

  1. 确保已安装所需的依赖:lark_oapi, pandas, django
  2. 在执行数据库操作前,确保数据库连接已正确配置
  3. 自定义SQL查询应避免执行修改数据的操作(INSERT, UPDATE, DELETE等)
  4. 导入大量数据时,可能需要分批处理,使用--limit参数控制数量
  5. 创建知识库需要管理员权限,确保有可用的管理员账号

常见问题

Q: 导入数据时出现字段不匹配错误?

A: 确保字段名称与飞书多维表格中的字段名称完全匹配,或使用字段映射功能。

Q: 如何添加新的数据模型支持?

A: 在import_from_database_to_feishu函数中添加新的模型映射,并按照现有模式实现字段映射逻辑。

Q: 如何处理Gmail和飞书同一个达人的数据合并

A: 系统会自动检查达人邮箱如果在Gmail中已有映射会使用同一个知识库避免重复创建。