Jira API 无法使用 Google 脚本

Jira API Not Working From Google Script

我有一个 Google 脚本 运行ning 作为 Sheet 的一部分,它使用基本身份验证和 JQL 从 Jira board 获取一些票证。

当通过 curl (ubuntu) 从命令行 运行 时,JQL 工作得很好,但当从 Google 脚本执行时显示以下错误 -

{"errorMessages":["Field 'assignee' does not exist or this field cannot be viewed by anonymous users."],"errors":{}}

这就是我发出 curl 请求的方式 -

curl -H "Authorization: Basic <base64 encoded username:password>" -X GET -H "Content-Type: application/json" https://<jira_host>.com/rest/api/2/search?jql=<JQL>

这就是我在 Google 脚本中的做法 -

var url = encodeURI(host + 'rest/api/2/search?jql=' + jql);
var params = {};
params['header'] = {'Authorization': PropertiesService.getUserProperties().getProperty('AUTH')};
params['Content-Type'] = 'application/json';
params['Accept'] = 'application/json';
params['method'] = 'GET';
params['muteHttpExceptions'] = true;
var response = UrlFetchApp.fetch(url, params);

我参考了 JIRA Basic Authentication 指南的 CAPTCHA 部分来查看我是否被拒绝身份验证,但我通过验证响应确认情况并非如此 headers.

我不确定我做错了什么导致了这个错误。感谢任何帮助。

谢谢。

最可能的答案是 jql 参数未正确编码。切换到 POST 方法并以这种方式尝试。

我自己解决了。这是一个错字。

params['header'] = {'Authorization': PropertiesService.getUserProperties().getProperty('AUTH')};

固定为

params['headers'] = {'Authorization': PropertiesService.getUserProperties().getProperty('AUTH')};

请注意,它是 'headers' 而不是 'header'。