当前正在使用ACE框架开发JIRA插件。使用集成的httpClient执行请求。
当我发出这样的请求
https://instance.atlassian.net/rest/api/3/search
使用标头Authorization: JWT <token>
可以正常工作,但是当我使用类似这样的查询参数运行相同的请求
https://instance.atlassian.net/rest/api/3/search?maxResults=1
该请求失败,并显示401。我已确认JWT未到期,原因是还原了查询参数并再次看到成功。
我的atlassian-connect.json
具有端点要求的范围READ
。
有什么建议吗?
答案 0 :(得分:0)
我对其余的“ rest / api / 2 / search?maxResults = 1”有效感到惊讶。但是当我登录到实例时确实如此。
如果我在问题搜索中尝试作为JQL( maxResults = 1 ),则会收到无效或未经授权的错误消息。
我的实例在内部(API V2)。您的似乎在云(V3)中。因此,REST搜索的工作方式可能更像V3中的问题搜索,因此返回了401
猜测应该很容易测试...用一些实际的JQL或过滤器ID替换 maxResults = 1 ,看看结果是否有变化
答案 1 :(得分:0)
由于您使用的是ACE并且使用的是httpClient,因此您可能想尝试使用checkValidToken()路由。下面的代码段对我有用。
app.get('/mySearch', addon.checkValidToken(), function(req, res) {
var httpClient = addon.httpClient(req);
httpClient.get({
url: '/rest/api/3/search?maxResults=1',
headers: {
'X-Atlassian-Token': 'nocheck',
'Content-Type': 'application/json'
}
},
function (err, httpResponse, body) {
if (err) {
return console.error('Search failed:', err);
}
console.log('Search successful:', body);
});
});