You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过API获取Azure DevOps所有用户的联系邮箱

获取Azure DevOps所有用户联系邮箱的解决方案

问题背景

使用https://vssps.dev.azure.com/{{organization}}/_apis/graph/users API获取的mailAddress并非用户的联系邮箱;调用https://app.vssps.visualstudio.com/_apis/profile/profiles/me能拿到自己的正确邮箱,但批量请求https://app.vssps.visualstudio.com/_apis/profile/profiles时收到不支持GET方法的错误。

可行方案

方案1:Graph API + 单个Profile查询

  1. 获取所有用户的唯一标识
    调用Graph Users API获取组织内所有用户的subjectDescriptor(用户唯一标识):

    GET https://vssps.dev.azure.com/{{organization}}/_apis/graph/users?api-version=7.1-preview.1
    

    返回结果中每个用户的subjectDescriptor字段是后续查询的关键。

  2. 逐个查询用户联系邮箱
    对每个用户的subjectDescriptor,调用Profile API获取联系邮箱:

    GET https://vssps.dev.azure.com/{{organization}}/_apis/profile/profiles/{subjectDescriptor}?api-version=7.1-preview.3
    

    返回结果的emailAddress字段即为目标联系邮箱。

    注意:需确保调用API的身份拥有**Profile (Read)**权限(如PAT需勾选profile的read权限)。

方案2:使用Azure DevOps CLI批量获取

若使用Azure DevOps CLI,可直接执行以下命令一键导出:

az devops user list --org https://dev.azure.com/{{organization}} --output json | jq '.[] | {name: .displayName, email: .emailAddress}'

前提:已安装Azure CLI并登录(执行az devops login完成身份验证)。

方案3:批量Profile查询(减少请求次数)

批量Profile接口不支持GET,需通过POST请求传入用户subjectDescriptor列表:

  • 请求URL:https://vssps.dev.azure.com/{{organization}}/_apis/profile/profiles?api-version=7.1-preview.3
  • 请求方法:POST
  • 请求体(JSON):
    {
      "descriptors": ["subjectDescriptor_1", "subjectDescriptor_2", "..."]
    }
    
    此方法可一次性获取多个用户的资料,适合用户量较大的场景。

内容的提问来源于stack exchange,提问作者Jerry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 14:05:00