我有一个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 部分,看看我是否被拒绝身份验证,但我确认通过验证响应标头并非如此。
我不确定我做错了什么导致此错误。任何帮助表示赞赏。
感谢。
答案 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.