本文介绍了在MS Teams中安装BOT时获取所有团队成员的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用MS Teams机器人实现主动消息传递。根据文档,在向用户发送任何消息之前,我必须获得conversationReference
,所以我实现了onMembersAdded
事件监听器,如下所示:
class TeamsBot extends TeamsActivityHandler {
constructor() {
super();
this.onConversationUpdate(async (context, next) => {
this.addConversationReference(context);
});
this.onMembersAdded(async (context, next) => {
const membersAdded = context.activity.membersAdded;
for (let cnt = 0; cnt < membersAdded.length; cnt++) {
if (membersAdded[cnt].id !== context.activity.recipient.id) {
this.addConversationReference(context);
}
}
await next();
});
}
问题是,即使我的团队(和渠道)有很多成员,我也只收到安装应用程序的用户的通知:
安装机器人后,如何获取每个团队成员的对话参考?
推荐答案
注意团队中用户之间的区别以及用户和机器人之间的对话参考是很重要的。医生们想--试图--说的是:
- 将您的机器人添加到团队后,您可以获得团队中的用户列表。 您可以使用用户列表在您自己数据库中查找您需要的会话引用,以便为这些用户发送消息。这是因为这些是对单独的对话的引用-机器人位于团队/频道中,并且具有那个引用,但机器人要用来亲自向用户发送消息的1-1聊天是每个单独的聊天。
- 如果您没有任何/所有这些用户的对话参考,您需要获取它们。这意味着用户需要(A)自己安装机器人,或者您需要(B)install it for them via the Graph。
IMO文档并没有很好地解释这一点--它们假定通过列举您将立即获得的实际对话引用的用户列表,和/或您可能能够使用BOT框架本身发起对话。
这篇关于在MS Teams中安装BOT时获取所有团队成员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!