获取用户@提到Microsoft Teams Bot的AADObject ID

时间:2020-03-18 21:47:46

标签: azure botframework microsoft-teams azure-bot-service microsoft-graph-teams

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

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

1 个答案:

答案 0 :(得分:1)

您可以使用Bot Context(使用从GetMentions(29:id)收到的ID)获得用户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;
    }