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
相关产品推荐
相关产品推荐

