如何使用Microsoft Graph API获取Microsoft Teams私有团队频道成员列表
解决方案
方法一:升级 Teams JS SDK 到 2.x 及以上版本
你当前使用的 1.11.0 版本 SDK 属于旧版,私有频道场景下的 teamId 字段返回设计确实为频道ID本身。在 2.x 版本的 SDK 中,Context 对象新增了 groupId 字段,该字段就是私有频道所属的真实团队 ID,你可以直接用 Context.groupId + Context.channelId 调用 /teams/{team-id}/channels/{channel-id}/members 接口,不需要额外做任何遍历操作。
方法二:仅用两次 Graph 接口调用完成查询
如果暂时无法升级 SDK,可以用以下流程替代你之前的遍历方案,大幅减少调用次数:
- 调用 Graph 接口
GET /channels/{Context.channelId},该接口返回结果中会直接携带私有频道所属的真实团队 ID(teamId字段)调用该接口需要提前申请
ChannelSettings.Read.All或更高的对应权限 - 拿到真实团队 ID 后,直接调用成员查询接口即可
补充说明
你之前测试时,用任意团队 ID 搭配私有频道 ID 都能返回成员列表,是旧版 Graph API 内部做的兼容路由逻辑,该行为不属于官方承诺的稳定特性,不要在生产环境依赖该逻辑处理业务。
内容的提问来源于stack exchange,提问作者Michael Antipin
相关产品推荐
相关产品推荐

