【问题标题】:Text Cannot be Parsed to a Duration error from API文本无法从 API 解析为持续时间错误
【发布时间】:2021-02-17 20:03:29
【问题描述】:

我正在使用 Google Apps 脚本修改 Clockify (https://clockify.me/developers-api) 中的项目。我收到错误消息“无法将文本解析为持续时间”。

当前代码(请注意,真正的目标是从当前工作表的 M3 单元格中恢复信息,但出于测试目的,我已将其注释掉):

function ClockifyEstimateUpdate() {
// Step 1: Find ProjectID for this file
  var sheet = ss.getActiveSheet();
  var FileNo = sheet.getSheetName();
  var url = 'https://api.clockify.me/api/v1/workspaces/'+cifyWorkspace+'/projects?name='+FileNo;
  var response = UrlFetchApp.fetch(url, cifyHeader);
  var json = response.getContentText();
  var data = JSON.parse(json);
  var PID = data[0]["id"];

//Step 2: Use M3 to Set Estimate
  //var estimate = sheet.getRange("M3");
  var estimate = '3000';
  var payload = JSON.stringify({'timeEstimate' : {'estimate' : estimate, 'type': "MANUAL", 'active': "true", 'resetOption': "null"}});
  //var payload = JSON.stringify({'timeEstimate' : {'estimate' : estimate, 'type': "MANUAL", 'active': "true", 'resetOption': "null"}, 'budgetEstimate' : {'estimate' : '0', 'type': "MANUAL", 'active': "false", 'resetOption': "null"}});
  var clockifyoptions = {
  'muteHttpExceptions' : true,
  'method' : 'patch',
  'headers' : cifyHeaders,
  'payload' : payload
  };
  var response2 = UrlFetchApp.fetch('https://api.clockify.me/api/v1/workspaces/'+cifyWorkspace+'/projects/'+PID+'/estimate', clockifyoptions);
  Logger.log(response2);
}

记录的错误:

{"message":"无法读取文档:无法构造实例 com.clockify.adapter.http.project.TimeEstimateWithOptionsRequest, 问题:文本无法解析为 [来源: java.io.PushbackInputStream@44d0391a;行:1,列:89](通过 参考链: com.clockify.adapter.http.project.ProjectEstimateRequest["timeEstimate"]); 嵌套异常是 com.fasterxml.jackson.databind.JsonMappingException:无法构造 的实例 com.clockify.adapter.http.project.TimeEstimateWithOptionsRequest, 问题:文本无法解析为 [来源: java.io.PushbackInputStream@44d0391a;行:1,列:89](通过 参考链: com.clockify.adapter.http.project.ProjectEstimateRequest["timeEstimate"])","code":3002}

我已尝试将估算值设置为“3000s”,正如其他地方所建议的那样。到目前为止,这并不能解决问题。我需要对估计变量进行某种解析吗?

谢谢。

【问题讨论】:

  • 我可以问你关于你的问题吗? 1、关于Text cannot be parsed to a duration的错误,你的脚本哪里出错了? 2. 请问cifyHeadercifyHeaders的值?如果值中包含您的个人信息,请将其替换为其他值。
  • 错误被记录为变量 response2。最后通过 Logger.log 打印。 cifyHeader 和 cifyHeaders 是在请求​​中传递 API 密钥的两种不同方式。我不知道为什么他们需要不同,但他们是。不过它们可以工作——我基本上已经在使用这段代码来启动计时器了。

标签: javascript google-apps-script clockify


【解决方案1】:

知道了。答案在 Clockify API 文档中的示例中。

该示例要求以“PT1H0M0S”形式进行时间估计。这是 ISO-8601。我需要以这种格式发送我的请求。

【讨论】:

    猜你喜欢
    • 2022-07-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 2014-08-16
    • 2021-12-12
    • 2013-12-01
    • 2012-09-19
    相关资源
    最近更新 更多