在过去的三个月里,我使用Clockify跟踪我一天中的大致每一分钟作为实验。我正在从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的响应中,我找不到这样的功能,或者类似于分页指示器的东西。
发布于 2020-12-18 06:20:45
这有点晚了,但是要获得用户的记录数,您可以使用Summary report endpoint,因为它包含一个entriesCount字段,可以对查询的所有记录求和,而不考虑页面限制。您可以将startRangeStart参数设置为当天开始开户的日期,并设置dateRangeEnd参数。最后,您可以筛选出特定的用户id。
查询:https://reports.api.clockify.me/v1/workspaces/xxxxxxx/reports/summary
帖子正文:
{
"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字段用于分页目的并结合原始查询,那么这并不重要。
https://stackoverflow.com/questions/65011823
复制相似问题