azure - 获取向 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 或指向正确的文档吗?
解决方案
您可以使用从 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;
}
推荐阅读
- json - 在 Mongo DB 中搜索
- java - 无法将文件保存到 SD 卡
- sql - 从下一个表 CTE 中获取每个值的下一个值
- c# - Rows in datagrid bound but the item source is not updated when edited
- html - HTML 表格浏览器呈现问题
- visual-studio-code - 从 vscode 中删除彩色缩进
- swift - 非最终类中的方法 ... 无法在协议扩展中实现,因为它返回“Self”并具有相关的类型要求
- git - 更改 git 分支类型
- django - 如何呈现由 CreateView 自动创建的表单(在模板标签中)
- jsf - java.lang.illegalargumentexception 无法识别的内容类型