Toggl API 兼容接入
把原来给 Toggl 用的脚本、CLI 和 Agent 改连 OpenTickly:用哪个地址、怎么用 API Token 认证、切换前要测什么。
OpenTickly 的 API 和 Toggl 一样。原来给 Toggl 写的脚本、CLI 和 Agent,只要换个地址和 Token 就能连到 OpenTickly。我们兼容的是 Toggl 的三套 API:Track v9、Reports v3 和 Webhooks v1。
基础地址
把 https://your-instance.example 换成你自己 OpenTickly 的访问地址。
| API | 基础地址 |
|---|---|
| Track v9 | https://your-instance.example/api/v9 |
| Reports v3 | https://your-instance.example/reports/api/v3 |
| Webhooks v1 | https://your-instance.example/webhooks/api/v1 |
如果要通过公网访问,记得上 HTTPS。Docker 容器本身只提供 HTTP,HTTPS 一般交给 Nginx、Caddy 这类反向代理来做。
获取 API Token
登录 OpenTickly 网页,打开头像菜单,进入 个人资料,找到 API Token。Token 要像密码一样保管:别提交到 git,别贴到 Issue 里,也别打印到日志里。
认证方式和 Toggl 一样:HTTP Basic 认证,用户名填 Token,密码固定填字符串 api_token:
curl --user "${OPENTICKLY_API_TOKEN}:api_token" \
https://your-instance.example/api/v9/me先在 Shell 里设置好 OPENTICKLY_API_TOKEN 再运行。能返回你的用户信息,就说明 Token 没问题。
把已有工具切到 OpenTickly
大多数工具只需要改两处:
- 把 Toggl 的 API 地址换成上表里你的 OpenTickly 地址。
- 把 Toggl 的 Token 换成 OpenTickly 的 Token。
toggl-cli 这样配置:
toggl auth <YOUR_API_TOKEN> \
--api-type opentoggl \
--api-url https://your-instance.example/api/v9如果某个第三方应用把 Toggl 的地址写死了,也没有地方可以改,那它就没法连 OpenTickly。
切换前先测一下
只需要测你的工具真正会调用的接口。正式切换前:
- 用
GET /api/v9/me读取当前用户。 - 查一下你的工作区、项目、标签和最近的时间记录。
- 创建并停止一条测试记录。
- 跑一遍你的脚本实际用到的报表查询。
- 如果用到 Webhook,建一条测试订阅,测完删掉。
- 检查报错处理、分页、日期和时区。
目前还不是每个 Toggl 接口都表现完全一致。如果某个操作在 Toggl 上正常、在 OpenTickly 上不对,请到 GitHub Issues 提交,附上请求内容和你收到的返回。
自动运行的脚本,地址和 Token 别写进代码里;用的账号只给它需要的工作区权限;Token 泄露了就马上重置。