Jira API无法使用Google脚本

时间:2016-08-31 13:42:44

标签: curl google-apps-script jira jira-rest-api

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

从命令行通过curl(ubuntu)运行JQL时工作正常但从Google Script执行时显示以下错误 -

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

这就是我提出卷曲请求的方式 -

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>

这就是我在谷歌脚本中的表现 -

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 部分,看看我是否被拒绝身份验证,但我确认通过验证响应标头并非如此。

我不确定我做错了什么导致此错误。任何帮助表示赞赏。

感谢。

2 个答案:

答案 0 :(得分:2)

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

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

已修复

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

请注意,它是'标题'而非'标题'。

答案 1 :(得分:0)

The most probable answer is that the jql parameter isn't properly encoded. Switch to the POST method and try it that way.