Skip to content
OpenTickly

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 v9https://your-instance.example/api/v9
Reports v3https://your-instance.example/reports/api/v3
Webhooks v1https://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

大多数工具只需要改两处:

  1. 把 Toggl 的 API 地址换成上表里你的 OpenTickly 地址。
  2. 把 Toggl 的 Token 换成 OpenTickly 的 Token。

toggl-cli 这样配置:

toggl auth <YOUR_API_TOKEN> \
  --api-type opentoggl \
  --api-url https://your-instance.example/api/v9

如果某个第三方应用把 Toggl 的地址写死了,也没有地方可以改,那它就没法连 OpenTickly。

切换前先测一下

只需要测你的工具真正会调用的接口。正式切换前:

  1. 用 GET /api/v9/me 读取当前用户。
  2. 查一下你的工作区、项目、标签和最近的时间记录。
  3. 创建并停止一条测试记录。
  4. 跑一遍你的脚本实际用到的报表查询。
  5. 如果用到 Webhook,建一条测试订阅,测完删掉。
  6. 检查报错处理、分页、日期和时区。

目前还不是每个 Toggl 接口都表现完全一致。如果某个操作在 Toggl 上正常、在 OpenTickly 上不对,请到 GitHub Issues 提交,附上请求内容和你收到的返回。

自动运行的脚本,地址和 Token 别写进代码里;用的账号只给它需要的工作区权限;Token 泄露了就马上重置。

On this page