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

Teams消息扩展调用getMember报错机器人不在会话名单如何解决

问题根源

该报错的核心原因是:TeamsInfo.getMember() 接口依赖机器人属于当前会话的成员列表(roster)。用户把应用安装到群聊/频道时,默认不会自动将关联的机器人添加到会话成员列表中,只有当用户主动@机器人、或手动将机器人添加到群/频道后,机器人才能调用该接口获取成员信息。你当前的manifest配置本身没有语法错误,使用的botbuilder 4.14.1版本、manifest 1.9版本也均兼容相关能力,无需升级版本。

可行解决方案
  • 方案1:调用Microsoft Graph接口获取用户信息(最推荐)
    不需要依赖机器人在会话成员列表中,直接通过从context中拿到的用户aadObjectId调用Graph的GET /users/{aadObjectId}接口获取用户详情即可:
    1. 在Azure门户你的Bot应用注册中,添加User.Read.All的应用类型权限,提交租户管理员同意
    2. 代码中先获取Graph接口的访问令牌,再请求对应接口拿到用户信息,替代TeamsInfo.getMember()调用
  • 方案2:缓存已获取的用户信息
    你已经在onTeamsMemberAdded回调中可以正常拿到用户详情,可将用户aadObjectId与对应的用户信息持久化存储到你的服务数据库中,后续用户触发消息扩展搜索时,直接通过aadObjectId从缓存中查询即可,不需要重复调用接口,性能也更优。
  • 方案3:引导用户将机器人添加到当前会话
    当捕获到The bot is not part of the conversation roster报错时,返回消息扩展提示卡片,引导用户先@一次当前应用的机器人,触发机器人自动加入会话后,再使用搜索功能。该方案对用户体验有影响,不优先推荐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:27:00