问题标签 [clockify]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
108 浏览

node.js - '访问此资源需要完全身份验证' 使用 Node JS 的 Clockify API

我无法使用 Node js 中的 Clockify API 添加新客户端。以下 axios 发布请求返回错误消息:“访问此资源需要完全身份验证”。但是,我可以使用具有相同 API 密钥的 axios.get() 方法获取客户端列表,所以我不确定为什么发布请求说我没有经过身份验证。请让我知道我错过了什么

}

0 投票
1 回答
105 浏览

google-apps-script - 在 Google Scripts 中为 fetchURL 编写请求 JSON:脚本运行两次?

提前为这个冗长的问题道歉。我正在尝试创建一个 Google 表格,告诉我每个承包商每个月登录 Clockify 的小时数。(完整代码在底部)

简而言之,我的问题是使用来自谷歌表的输入为对 Clockify API 的 UrlFetchApp.fetch() 请求创建 JSON 文件。

我希望 JSON 看起来像这样:

当我使用此代码时,它可以完美运行。但是,开始日期和结束日期是我在 google 表格中计算的变量,因为我需要每个月更改这些日期。我写了一个函数,它给了我正确的输出(“2022-01-01T00:00:00.000”,“2022-01-31T23:59:59.000”),但是当我引用谷歌表格中的单元格时,我得到一个 400错误提示 API 无法解析 JSON。

脚本中的功能:

在工作表中调用函数:

输出错误信息:

例外:对https://reports.api.clockify.me的请求失败,返回代码 400。截断的服务器响应:{"code":400,"message":"generateSummaryReport.arg1.dateRangeEnd: 字段 dateRangeEnd 是必需的,generateSummaryReport.arg1 .dateRangeStart: Field da...(使用 muteHttpExceptions 选项检查完整响应)

当我使用 Logger.log(payload) 时发生了一件奇怪的事情,这可能是问题的根源。看起来代码运行了两次,第一次有效载荷 JSON 是正确的,但第二次是不正确的。

第一次: {​​"dateRangeStart":"2022-01-01T00:00:00.000","dateRangeEnd":"2022-01-31T23:59:59.000","summaryFilter":{"groups":["USER"] ,"sortColumn":"GROUP"}}

第二次: {"summaryFilter":{"groups":["USER"],"sortColumn":"GROUP"}}

我尝试了很多解决方案,但实际上归结为在 JSON 中引用 Google 工作表。当我将日期计算的输出复制并粘贴到 JSON 中时,它可以工作。当我使用日期计算输出在脚本中创建变量时,它可以工作。当我返回 startDate 时,它​​给了我“2022-01-01T00:00:00.000”,这是正确的。我只是不明白出了什么问题。谢谢你的帮助!

完整代码: