如何在MSTeams中通过ChatBot获取群聊成员及新增成员列表
MSTeams ChatBot 群成员采集实现方案
一、获取MSTeams群聊新增成员列表
- 前置配置:首先在Azure门户对应的Bot应用配置页,为Teams频道开启
teamMember.Read权限,完成管理员授权后,将机器人添加到目标群聊中。 - 触发逻辑:当群聊有新成员加入时,Teams平台会主动向机器人推送
conversationUpdate类型的事件,直接解析事件payload中的membersAdded字段,即可获取新增成员的ID、显示名、AAD对象ID等完整信息,无需额外调用其他接口。
二、采集MSTeams群聊的全部成员数据
有两种常用实现方式,可根据开发栈选择:
- 调用Teams Bot SDK内置方法
不同语言的SDK都封装了对应的原生能力,无需自行拼接接口:- C# 开发:调用
TeamsInfo.GetMembersAsync(turnContext, cancellationToken)方法,直接返回当前群聊的全量成员列表 - Node.js 开发:调用
TeamsInfo.getMembers(context)方法获取成员数据
- C# 开发:调用
- 调用Microsoft Graph API
先获取当前群聊的chatId,再请求接口:GET https://graph.microsoft.com/v1.0/chats/{chat-id}/members
注意需要提前为Bot申请ChatMember.Read.All应用权限并完成管理员同意,若群成员数量超过100,需要处理返回结果中的@odata.nextLink分页标识,遍历拉取全量数据。
相关参考图示

内容的提问来源于stack exchange,提问作者siva subramanian
相关产品推荐
相关产品推荐

