1.7 KiB
1.7 KiB
TickTick Integration
当前 Python 项目里的 TickTick 迁移先恢复 legacy 的最核心能力,不额外扩成更大的集成层。
当前已支持
- 运行时从 config 表读取 TickTick 配置,缺失时仍可 fallback
.env GET /ticktick/auth/start- 需要已登录 session
- 生成 OAuth
state - 直接重定向到 TickTick 授权页
GET /ticktick/auth/code- 校验进程内保存的
state - 用 authorization code 换取 access token
- 将
TICKTICK_TOKEN持久化到app_config表
- 校验进程内保存的
- TickTick Open API 基础调用:
- 列 project
- 列 project 下 task
- 创建 task
- 按 title 精确匹配做重复创建保护
- Home Assistant inbound 已重新接回
ticktick / create_action_task
当前配置项
APP_HOSTNAMETICKTICK_CLIENT_IDTICKTICK_CLIENT_SECRETTICKTICK_TOKENHOME_ASSISTANT_ACTION_TASK_PROJECT_ID
兼容性说明
- 仍保留 legacy 的 OAuth authorization code flow
- OAuth callback URI 现在由
APP_HOSTNAME和当前环境自动推导:development使用http,其他环境使用https state仍是进程内临时状态;如果服务在 start 和 callback 之间重启,本轮实现下授权需要重新开始- 不再把 token 写回
.env或其他配置文件,统一写入 config 表 - 当前没有引入 legacy 的第三方 TickTick 库,先用标准库完成兼容行为
后续适合单独拆分的工作
- 给 config 页面增加明确的 TickTick 授权入口
- 增加 project 探测或选择能力,减少手工填写
HOME_ASSISTANT_ACTION_TASK_PROJECT_ID - 如果后续发现 OAuth/token 生命周期需要更强健,再补 refresh token 或持久化 auth state