You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用VBA从Clockify导出数据遇HTTP 405错误求助

解决Clockify API调用HTTP 405方法不允许的问题

问题原因

Clockify的/reports/detailed接口不支持GET请求,必须使用POST方法。你收到的405错误就是因为请求方法不符合接口要求——该接口需要通过POST传递筛选参数(即使是获取全部数据,也需要提交一个合法的JSON请求体)。

修改后的代码

将请求方法改为POST,并传递空的JSON请求体(或自定义筛选参数):

Public Sub GetAllClockifyDetailedReports()
    
    Dim httpCaller As MSXML2.XMLHTTP60
    Set httpCaller = New MSXML2.XMLHTTP60
    
    ' 空请求体表示获取默认配置下的全部数据,可根据需求修改
    Dim requestBody As String
    requestBody = "{}"
    
    With httpCaller
        ' 替换*****为你的实际工作区ID
        .Open "POST", "https://reports.api.clockify.me/v1/workspaces/*****/reports/detailed", False
        .setRequestHeader "X-Api-Key", CLOCKIFY_API_KEY
        .setRequestHeader "Content-Type", "application/json"
        .send requestBody
    End With
    
    ' 输出响应结果
    If httpCaller.Status = 200 Then
        Debug.Print httpCaller.responseText
        ' 可在此添加将响应数据写入Excel工作表的逻辑
    Else
        Debug.Print "请求失败:状态码 " & httpCaller.Status & vbCrLf & httpCaller.responseText
    End If
    
    Set httpCaller = Nothing
End Sub

自定义筛选(可选)

如果需要指定时间范围、分组等条件,修改requestBody为对应的JSON结构即可,示例:

{
  "dateRangeStart": "2024-01-01T00:00:00Z",
  "dateRangeEnd": "2024-06-30T23:59:59Z",
  "summaryFilter": {
    "groups": ["PROJECT", "TASK"]
  },
  "hydrated": true
}

内容的提问来源于stack exchange,提问作者Spark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 07:02:12