feat: 添加飞书tenant_access_token自动获取功能
- 在FeishuSheetsClient中添加_get_tenant_access_token()方法 - 实现token自动缓存和刷新机制(提前30分钟刷新) - 更新配置类支持FEISHU_APP_ID和FEISHU_APP_SECRET - 从.env中移除FEISHU_TOKEN,完全使用应用凭证 - 更新report.py和gui.py支持新的配置检查逻辑 - 更新FeishuScheduleManager配置检查逻辑 - 更新文档和示例文件说明新的配置方式 系统现在支持两种认证方式: 1. 推荐:使用应用凭证(FEISHU_APP_ID + FEISHU_APP_SECRET) 2. 备选:使用手动token(FEISHU_TOKEN) 所有功能测试通过,系统能自动获取、缓存和刷新token。
This commit is contained in:
40
README.md
40
README.md
@@ -75,9 +75,16 @@ CONFLUENCE_CONTENT_ID=155764524
|
||||
|
||||
# 飞书表格配置(用于获取排班人员信息)
|
||||
FEISHU_BASE_URL=https://open.feishu.cn/open-apis/sheets/v3
|
||||
FEISHU_TOKEN=your-feishu-api-token
|
||||
FEISHU_SPREADSHEET_TOKEN=EgNPssi2ghZ7BLtGiTxcIBUmnVh
|
||||
|
||||
# 飞书应用凭证(推荐方式,自动获取tenant_access_token)
|
||||
# 创建飞书自建应用后获取app_id和app_secret
|
||||
FEISHU_APP_ID=your-feishu-app-id
|
||||
FEISHU_APP_SECRET=your-feishu-app-secret
|
||||
|
||||
# 备选:手动配置token(不推荐,token会过期)
|
||||
# FEISHU_TOKEN=your-feishu-api-token
|
||||
|
||||
# 数据库配置
|
||||
DATABASE_PATH=data/daily_logs.db
|
||||
|
||||
@@ -205,10 +212,29 @@ GUI 功能:
|
||||
- **`manager.py`** - 内容管理器,提供高级内容管理功能
|
||||
|
||||
### 飞书模块 (`src/feishu/`)
|
||||
- **`client.py`** - 飞书 API 客户端
|
||||
- **`client.py`** - 飞书 API 客户端,支持自动获取和刷新tenant_access_token
|
||||
- **`parser.py`** - 排班数据解析器
|
||||
- **`manager.py`** - 飞书排班管理器,缓存和刷新排班信息
|
||||
|
||||
#### Token 自动获取机制
|
||||
飞书模块现在支持两种认证方式:
|
||||
1. **推荐方式**:使用应用凭证(FEISHU_APP_ID + FEISHU_APP_SECRET)
|
||||
- 系统会自动调用飞书API获取tenant_access_token
|
||||
- token有效期2小时,系统会在过期前30分钟自动刷新
|
||||
- 无需手动管理token过期问题
|
||||
|
||||
2. **备选方式**:使用手动配置的FEISHU_TOKEN
|
||||
- 兼容旧配置方式
|
||||
- token过期后需要手动更新
|
||||
- 不推荐长期使用
|
||||
|
||||
#### 如何获取应用凭证
|
||||
1. 登录飞书开放平台:https://open.feishu.cn/
|
||||
2. 创建自建应用
|
||||
3. 在"凭证与基础信息"中获取App ID和App Secret
|
||||
4. 为应用添加"获取tenant_access_token"权限
|
||||
5. 将应用发布到企业(仅自建应用需要)
|
||||
|
||||
### 数据库模块 (`src/database/`)
|
||||
- **`base.py`** - 数据库基类,提供统一的连接管理
|
||||
- **`daily_logs.py`** - 每日交接班日志数据库
|
||||
@@ -271,7 +297,15 @@ python3 main.py report-today
|
||||
1. **连接失败**: 检查 `.env` 文件中的 API 令牌和 URL
|
||||
2. **数据库错误**: 确保 `data/` 目录存在且有写入权限
|
||||
3. **解析错误**: 检查 Confluence 页面结构是否发生变化
|
||||
4. **飞书数据获取失败**: 验证飞书表格权限和 token 有效性
|
||||
4. **飞书数据获取失败**:
|
||||
- 验证飞书表格权限
|
||||
- 检查应用凭证是否正确(FEISHU_APP_ID + FEISHU_APP_SECRET)
|
||||
- 确认应用已发布到企业(自建应用需要)
|
||||
- 检查网络连接是否能访问飞书API
|
||||
5. **飞书token获取失败**:
|
||||
- 确认应用有"获取tenant_access_token"权限
|
||||
- 检查app_id和app_secret是否正确
|
||||
- 查看日志文件获取详细错误信息
|
||||
|
||||
### 日志级别
|
||||
|
||||
|
||||
Reference in New Issue
Block a user