我在使用VSTS Node Api时遇到了一些问题——特别是Identities API。
我已经成功地使用 Git API 来执行诸如检索存储库列表之类的操作:
// From ./functions/functions.js
module.exports.getRepos = async function (vstsWebApi) {
var gitApi = vstsWebApi.getGitApi();
var repos = await gitApi.getRepositories();
return repos;
}
然后,在其他地方,以下内容按预期工作,代表 Git 存储库的对象被记录到控制台:
let funcs = require("./functions/functions.js");
let vsts = require("vso-node-api");
let accessTokenPromise = VSS.getAccessToken();
accessTokenPromise.then(token => {
let bearerHandler = vsts.getBearerHandler(token.token);
let collectionUri = VSS.getWebContext().collection.uri;
let connect = new vsts.WebApi(collectionUri, bearerHandler);
let apiCallPromise = funcs.getRepos(connect);
apiCallPromise.then(
result => {
console.log(result);
}
)
})
但是,如果我尝试做类似的事情并使用身份 API 来listGroups
:
module.exports.getGroups = async function (vstsWebApi) {
var identitiesApi = vstsWebApi.getIdentitiesApi();
var groups = await identitiesApi.listGroups();
return groups;
}
将承诺更改为 getGroups 而不是 getRepos...
...
let apiCallPromise= funcs.getGroups(connect);
apiCallPromise.then(
result => {
console.log(result);
}
...
...我收到此错误:
Error: Failed to find api location for area: IMS id: 5966283b-4196-4d57-9211-1b68f41ec1c2
我正在我的个人 VSTS 帐户上尝试此操作,所以我应该是所有者/管理员 - 如果我的访问因权限问题而被拒绝,我预计会出现不同的错误。我尝试了不同的值collectionUri
,比如包括项目名称(my-account.visualstudio.com/ProjectABC),但这也不起作用。我还尝试了其他身份 API 调用,例如getSelf
,结果相同。