You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Teams Botbuilder中conversation.aadObjectId为空如何解决?

Bot中conversation.aadObjectId为null的解决办法

问题说明

我们有一款已发布的应用,正在开发需要用户及会话aadObjectId的新功能,但Bot接收消息时,conversation.aadObjectId始终返回null。尝试添加RSC权限后问题仍未解决,会话数据示例如下:

....
"serviceUrl": "https://smba.trafficmanager.net/emea/",
"conversation": {
    "id": "a:1Cohygr ... trunkated ... TscZ",
    "tenantId": "5df90000-0000-0000-0000-00000000c656",
    "conversationType": "personal",
    "aadObjectId": null  # 为什么是null?
}
....

原因及解决方案

  • 个人会话的特性限制:当前会话类型是personal(个人会话),这类场景下conversation.aadObjectId字段本身就不会返回有效值——这个字段仅针对团队(team)或频道(channel)类型的会话。如果需要获取用户的AAD对象ID,直接读取from.aadObjectId字段即可,该字段在个人会话中是稳定可用的。
  • 权限配置方向错误:如果是团队/频道会话下仍出现null,注意RSC权限并非解决此问题的正确选项,需检查以下应用权限:
    • 确保已添加Channel.ReadBasic.All或Group.Read.All应用权限
    • 确认权限已完成管理员同意,且Bot的服务主体已成功获取权限
  • 团队会话的替代获取方式:若在团队/频道场景下确实需要会话对应的AAD对象ID,可通过解析会话ID获取团队ID,再调用Microsoft Graph API的/teams/{team-id}接口获取团队的aadGroupId(即会话的AAD对象ID)。会话ID格式通常为19:{team-id}@thread.tacv2,提取中间的team-id部分即可。

验证步骤

  1. 先确认会话类型:如果是personal,直接改用from.aadObjectId获取用户AAD ID
  2. 团队/频道会话场景下,核对权限配置是否正确并完成管理员同意
  3. 调用Graph API测试能否正常获取团队的AAD对象ID

内容的提问来源于stack exchange,提问作者Oleksa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 00:37:15