TFS 2015 API - 401 - 未经授权:由于凭据无效,访问被拒绝

时间:2018-05-08 03:46:33

标签: visual-studio rest api tfs tfs2015

我正在尝试调用REST API以获取以前的构建详细信息,但是当我尝试运行调用API的脚本时,我在标题中收到错误:

  

401 - 未经授权:由于凭据无效,访问被拒绝

它正在构建服务器上使用Build Agent的凭据。构建服务器可以看到TFS URL,因为它能够成功构建。如果我尝试使用我的凭据调用API,它可以工作。它只适用于运行构建代理程序的帐户。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您是如何在脚本中设置授权的?

  1. 您可以 Use the OAuth token to access the REST API
  2.   

    要使您的脚本能够使用构建过程OAuth令牌,请转到   构建定义的选项选项卡,然后选择允许脚本访问   OAuth令牌参考下面的屏幕截图以启用选项)。

    以下脚本适用于我:

    onTouch()
    1. 您还可以在脚本中设置授权,如下所示:(在脚本中硬编码您的凭据)
    2. 例如:

      $url = "$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)$env:SYSTEM_TEAMPROJECTID/_apis/build/builds/14?api-version=2.0"
      Write-Host "URL: $url"
      $result = Invoke-RestMethod -Uri $url -Headers @{
          Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
      }
      Write-Host "$result = $($result | ConvertTo-Json -Depth 1000)"
      

      enter image description here