[英]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.