Get all organizations in Azure DevOps using REST API

后端 未结 5 1616
谎友^
谎友^ 2020-12-19 03:39

I am trying to retrieve all the organizations in my account but in the documentation an organization is always required in the API call.

https://dev.azure.co         


        
5条回答
  •  夕颜
    夕颜 (楼主)
    2020-12-19 04:16

    I'm getting a sign-in response for both "app.vssps.visualstudio.com/_apis/accounts" and Post https://dev.azure.com/{organization1}/_apis/Contribution/HierarchyQuery?api-version=5.0-preview.1

    StatusCode : 203 StatusDescription : Non-Authoritative Information

    EDIT: Nevermind, it worked using the static MSA clientid and replyURL:

    internal const string clientId = "872cd9fa-d31f-45e0-9eab-6e460a02d1f1";          //change to your app registration's Application ID, unless you are an MSA backed account
                internal const string replyUri = "urn:ietf:wg:oauth:2.0:oob";                     //change to your app registration's reply URI, unless you are an MSA backed account
    
     //PromptBehavior.RefreshSession will enforce an authn prompt every time. NOTE: Auto will take your windows login state if possible
                result = ctx.AcquireTokenAsync(azureDevOpsResourceId, clientId, new Uri(replyUri), promptBehavior).Result;
                Console.WriteLine("Token expires on: " + result.ExpiresOn);
    
                var bearerAuthHeader = new AuthenticationHeaderValue("Bearer", result.AccessToken);
    
    // Headers
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                client.DefaultRequestHeaders.Add("User-Agent", "ManagedClientConsoleAppSample");
                client.DefaultRequestHeaders.Add("X-TFS-FedAuthRedirect", "Suppress");
                client.DefaultRequestHeaders.Authorization = authHeader;
    
    
                //Get Organizations
                client.BaseAddress = new Uri("https://app.vssps.visualstudio.com/");
                HttpResponseMessage response1 = client.GetAsync("_apis/accounts").Result;
    

提交回复
热议问题