UrlFetchApp 方法不起作用并在从 API 检索数据时出现 405 错误?

问题描述 投票:0回答:1

我正在尝试将 Clockify 详细时间报告放入 Google 表格中。当我尝试使用 URL 获取方法时,出现错误:

Exception: Request failed for https://reports.api.clockify.me returned code 405. Truncated server response: {"code":405, "message": "HTTP 405 Method Not Allowed"} (use muteHttpExceptions option to examine full response) 

这里是文档 - https://docs.clockify.me/#tag/Time-Entry-Report/operation/generateDetailedReport

我正在使用此代码:

function getTimeReport() {
  
  var body = {"dateRangeStart":"2023-10-05T00:00:00.000Z","dateRangeEnd":"2023-05-05T23:59:59.000Z","detailedFilter":{"page":1,"pageSize":1000,"options":{"totals":"EXCLUDE"}}}
  
  var headers = {
    "headers": {
      "x-Api-Key": "XXX",
      "Content-type": "application/json",
      "Application": "Custom",
      "muteHttpExceptions": "true",
      "Method": "POST",
      "payload": body
    }
  };
  
  var workspaceId = "XXX";
  
  var url = `https://reports.api.clockify.me/v1/workspaces/${workspaceId}/reports/detailed`;
  Logger.log(url);
  var response = UrlFetchApp.fetch(url, headers);
  Logger.log(response);

我仔细检查了工作区 ID 和 API 密钥是否正确。我可以知道我错在哪里吗?

javascript google-apps-script urlfetch http-status-code-405 clockify
1个回答
0
投票

在你的脚本中,当

body
x-Api-Key
的值为有效值时,进行以下修改如何?

修改后的脚本:

function getTimeReport() {
  var body = { "dateRangeStart": "2023-10-05T00:00:00.000Z", "dateRangeEnd": "2023-05-05T23:59:59.000Z", "detailedFilter": { "page": 1, "pageSize": 1000, "options": { "totals": "EXCLUDE" } } };

  var options = {
    "headers": { "x-Api-Key": "XXX" },
    "muteHttpExceptions": "true",
    "Method": "POST",
    "payload": JSON.stringify(body),
    "contentType": "application/json",
  };

  var workspaceId = "XXX";

  var url = `https://reports.api.clockify.me/v1/workspaces/${workspaceId}/reports/detailed`;
  Logger.log(url);
  var response = UrlFetchApp.fetch(url, options);
  Logger.log(response);
}
  • 我认为这个修改后的脚本的请求与您提供的URL的API规范相同。

参考:

© www.soinside.com 2019 - 2024. All rights reserved.