我使用Lockify API已经快两年了。我以前经常通过API提取数据以获得实时见解,一切都很好。但最近我遇到了一个问题,它停止提取数据整整一年。我检查了Lockify API,但它似乎没有变化,我不知道为什么会出现这个问题。
为了排除故障,我转向Clockify Reports并从那里导出数据进行比较。结果发现问题存在于代码中,但我正在努力识别和修复它。我希望有人可以帮助我解决这个问题。
下面是我使用的API格式。
Dim httpCaller As MSXML2.XMLHTTP60, body As String
Set httpCaller = New MSXML2.XMLHTTP60
body = "{""dateRangeStart"": ""2023-01-01T00:00:00.000"", " & vbLf & _
" ""dateRangeEnd"": ""2023-12-31T23:59:59.000"", " & vbLf & _
" ""detailedFilter"": {""page"": 1,""pageSize"": 1000}} "
' Debug.Print body
httpCaller.Open "POST", "https://reports.api.clockify.me/v1/workspaces/Key/reports/detailed"
httpCaller.setRequestHeader "X-Api-Key", "API_Key"
httpCaller.setRequestHeader "Content-Type", "application/json"
httpCaller.send body
字符串
1条答案
按热度按时间deyfvvtc1#
在
detailedFilter
键中,您正在为page
值使用静态值。这意味着它将永远只返回最近的1000条记录。您需要创建一个循环来确定您的daterange中总共有多少条记录。在每个响应中都有一个名为
entriesCount
的字段,您可以计算并迭代地遍历页面。例如,如果entriesCount
的值是3250,则需要重复API调用,其中page
的值以值1、2和3的方式迭代增加。不包括较旧的时间表的原因是Clockify从最新到最旧返回时间表,因此它返回1000个最近的时间表。