1

作为一项实验,我使用 Clockify 来跟踪过去 3 个月中我一天中的每一分钟。我正在从 API 中提取我所有的时间条目数据,以便我可以对其进行分析并进行可视化。

我想避免一次获得所有时间条目,所以我正在编写我的代码,以便它尊重默认的条目数,然后尝试对其进行分页。我通过将我在 Clockify UI 中看到的条目数除以每页的默认条目数来计算总页数。

这部分的 Python 代码如下所示:

num_pages = HARDCODED_VALUE
for pagenum in range(1, num_pages + 1):
    newurl = url + '?page={}'.format(pagenum)
    r = requests.get(newurl, headers=x_api_header)
    // do stuff (save to file, r.json(), etc.)

虽然我的用例非常具体,而且这样做的人似乎会遵循类似的程序,但我想知道是否有更程序化的方式来计算特定工作区中给定用户的条目总数?在 Clockify API 的响应中,我找不到这样的功能,或者类似于分页指示器的功能。

4

1 回答 1

0

这有点晚了,但是要获取用户的记录计数,您可以使用摘要报告端点,因为它包含一个entriesCount字段,该字段汇总了您的查询的所有记录,而不管页面限制如何。您可以将startRangeStart参数设置为您开始帐户的日期和dateRangeEnd当天的参数。最后,您可以过滤特定的用户 ID。

查询:https://reports.api.clockify.me/v1/workspaces/xxxxxxx/reports/summary

POST 正文:

{
  "dateRangeStart": "2010-01-01T00:00:00.000Z",
  "dateRangeEnd": "2020-12-17T23:59:59.000Z",
  "summaryFilter": {"groups": ["USER","TIMEENTRY"]},
  "exportType": "JSON",
  "users": {
    "ids": ["xxxxxxxxxx"],
     "contains": "CONTAINS",
    "status": "ALL"
  }
}

“TIMEENTRY”中的分组将返回每个单独的时间条目,但如果您只是将该字段用于分页目的并与原始查询结合summaryFilter使用,这无关紧要。entriesCount

于 2020-12-17T22:20:44.820 回答