首页 > 解决方案 > 获取向 Microsoft Teams Bot 提及的用户的 AADObject Id

问题描述

我正在使用 Azure Bot 服务开发 Microsoft Teams 机器人,我有一个用例,我需要获取@提到的用户 AAD 对象 ID 并使用此 ID 来获取其他企业特定的用户信息。我尝试使用 turnContext 对象的GetMentions()API,它返回Channel Account对象,但是,通道帐户的 AAD Object 属性为空,尽管它有一个 Id 属性,我认为该属性对应于 Bot Service 通道的(Microsoft Teams)用户。

鉴于我的研究,有人可以让我知道如何获取用户 AAD 对象 ID 或指向正确的文档吗?

标签: azurebotframeworkmicrosoft-teamsazure-bot-servicemicrosoft-graph-teams

解决方案


您可以使用从 GetMentions(29:id) 收到的 id使用Bot Context获取用户的 id。请尝试此代码,如果您遇到任何问题,请告诉我们:

  private static async Task<string> GetUserEmailId(Activity activity, string id)
    {
        var teamId = context.Activity.GetChannelData<TeamsChannelData>().Team.Id;
        ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
        var members1 = await connector.Conversations.GetConversationMembersAsync(teamId);
        var mem = members1.Where(m => m.Id == id).First().AsTeamsChannelAccount().ObjectId;
        return mem;
    }

推荐阅读