我正在使用Azure Bot服务开发Microsoft Teams机器人,我有一个用例,需要提取@提及的用户AAD对象ID并使用此ID获取其他企业特定的用户信息。
我尝试使用turnContext对象的GetMentions()
API返回Channel Account对象,但是,通道帐户的AAD Object属性为空,尽管它具有一个Id属性,我认为它对应于Bot {{ 3}}用户。
基于我的研究,有人可以让我知道如何获取用户AAD对象ID或为我提供正确的文档吗?
答案 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;
}