[英]Get all team members when bot is installed in MS Teams
我正在尝试使用 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();
});
}
问题是我只收到安装应用程序的用户的通知,即使我的团队(和频道)有很多成员:
安装机器人后,如何获取每个团队成员的对话参考?
请务必注意团队中用户之间的区别以及用户与机器人之间的对话引用。 文档 - 试图 - 说的是:
文档,imo,并没有真正解释得那么好 - 他们假设通过枚举用户列表你会立即获得 - 实际 - 对话参考,和/或你可能能够使用机器人发起对话框架本身。
要在频道中开始对话- 我想你正在寻找这样的东西 - 请参阅 3 点MessageAllMembers 。 试用可用的示例 - Teams Conversation Bot 。 (请参阅代码片段)
您可以使用TeamsInfo.getPagedMembers获取团队成员的详细信息
更新 -开始 1:1 对话- 我们在Company Communicator App 模板中使用 C# 实现了这一点。 公司通讯员的应用程序安装代码片段。
要首先安装它,请参考@Hilton Giesenow 共享的文档, JavaScript 片段并按照创建 authProvider 进行操作。
看看我们在 Company Communicator 中创建 1:1 对话的方法。 ( JavaScript 方法参考)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.