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

Microsoft Teams开发:如何获取已登录用户的姓名、关联号码等信息?

获取Microsoft Teams已登录用户详细信息的方法

作为Teams开发新手,你可以通过以下几种方案获取已登录用户的全名、关联号码及其他详情:

1. 核心方案:Microsoft Graph API

这是获取用户信息的标准方式,需要先给你的应用配置对应的权限:

  • 基础信息获取:申请User.Read权限(普通用户即可自主同意)
  • 更多用户详情:可申请User.Read.All(需管理员同意,适用于需要访问多用户信息的场景)

获取当前登录用户的完整信息

调用Graph API的/me端点即可返回用户核心数据:

GET https://graph.microsoft.com/v1.0/me

响应中包含你需要的关键字段:

  • displayName:用户全名
  • businessPhones:关联的办公号码(数组格式,可能包含多个号码)
  • 额外可获取的字段:mail(绑定邮箱)、jobTitle(职位)、department(所属部门)、mobilePhone(手机号)等

如果需要Teams专属信息,还可以调用其他端点:

  • /me/presence:获取用户在线状态
  • /me/teams:获取用户加入的所有团队

2. Teams应用开发专属工具:Teams Toolkit

如果你正在开发Teams Tab或Bot应用,Teams Toolkit提供了更便捷的集成方式:

Tab应用前端快速获取基础信息

使用Teams JS SDK的getContext方法可以快速拿到基础用户数据,无需额外调用Graph API:

microsoftTeams.getContext((context) => {
  console.log("用户全名:", context.userDisplayName);
  console.log("用户ID:", context.userObjectId);
  console.log("租户ID:", context.tenantId);
});

注意:getContext返回的信息有限,要获取号码、邮箱等详情,还是需要结合Graph API(用getAuthToken获取令牌后调用)。

Bot应用获取用户信息

在Bot开发中,可先通过TurnContext拿到用户ID,再调用Graph API获取完整详情:

// 获取对话成员基础信息
var userMember = await turnContext.GetConversationMemberAsync(turnContext.Activity.From.Id);
// 初始化Graph客户端并获取完整用户详情
var graphClient = new GraphServiceClient(authProvider);
var fullUserDetails = await graphClient.Me.Request().GetAsync();

权限配置提示

  • 在Azure AD应用注册页面,务必添加对应权限并完成同意流程:个人应用用用户同意,企业应用可能需要管理员批量同意。
  • 避免申请超出需求的权限,遵循最小权限原则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 18:22:17