botframework - 如何检查机器人/应用程序是否已从 ms 团队中卸载?
问题描述
我在团队中安装了一个机器人应用程序,使用团队范围。现在,当从团队中卸载此应用程序时,我可以获取/监控任何事件吗?
我正在查看 Microsoft 文档并尝试使用以下代码。据此,onTeamsMembersRemovedEvent
当机器人或成员被删除时调用。
export class MyBot extends TeamsActivityHandler {
constructor() {
super();
this.onTeamsMembersRemovedEvent(async (membersRemoved: ChannelAccount[], teamInfo: TeamInfo, turnContext: TurnContext, next: () => Promise<void>): Promise<void> => {
let removedMembers: string = '';
console.log(JSON.stringify(membersRemoved));
membersRemoved.forEach((account) => {
removedMembers += account.id + ' ';
});
const name = !teamInfo ? 'not in team' : teamInfo.name;
const card = CardFactory.heroCard('Account Removed', `${removedMembers} removed from ${teamInfo.name}.`);
const message = MessageFactory.attachment(card);
await turnContext.sendActivity(message);
await next();
});
}
}
但对我来说,当我删除机器人应用程序时,我没有收到此事件。我通过选择卸载从应用程序内部手动删除机器人应用程序。
解决方案
当通过导航到更多选项 > 管理团队 > 应用程序 > 卸载卸载应用程序时,teamMemberRemoved 事件被触发并得到正确响应。
{
"membersRemoved": [
{
"id": "28:aXXXXX04-e293-447c-951f-6a6971b3b66b"
}
],
"type": "conversationUpdate",
"timestamp": "2021-10-19T15:24:45.9499395Z",
"id": "f:e0d2c276-XXXXX-5d74-73ad-3c67b9b0ae4f",
"channelId": "msteams",
"serviceUrl": "https://smba.trafficmanager.net/amer/",
"from": {
"id": "29:1qanOqiaR5gWE-aWoYPdYjB--mUmmVQFGddHxyb37WXc4FI-eD62pSxBJYoXXXXXeGyFlpiTzRd-fTCiBmNbeuQg",
"aadObjectId": "XXXXXc4d0-XXXXX-4154-a85f-a89cd77aefa8"
},
"conversation": {
"isGroup": true,
"conversationType": "channel",
"tenantId": "3XXXXXef-XXXXX-4d60-XXXXX-0aXXXXX693df",
"id": "19:XXXXX53a099498f9e08679e58f1f7fc@thread.tacv2"
},
"recipient": {
"id": "28:aXXXXX-e293-XXXXX-951f-6a6971b3b66b",
"name": "XXXXX"
},
"channelData": {
"team": {
"aadGroupId": "XXXXXf3-fa01-XXXXX-bb62-201225dce9e4",
"name": "XXXXX",
"id": "19:XXXXX099498f9e08679eXXXXXf7fc@thread.tacv2"
},
"eventType": "teamMemberRemoved",
"tenant": {
"id": "36a708ef-XXXX-4d60-9de0-XXXXXXdf"
}
}}
推荐阅读
- javascript - 如何在每个新行的开头使用 > 将块引用的 innerHTML 更改为纯文本?
- python - 如何在 Visual Code 中激活 PyMongo Intellisense?
- c++ - 有人可以解释为什么这个程序可以计算小数点后的位数吗?
- php - 从 CSV 导入数据并将其插入 Mysql
- python - Python Flask 应用程序坚持在默认端口 5000 上运行,尽管尝试更改它
- c# - 统一添加到变换移动太远
- python - 如何拆分字符串并返回字符串的一部分
- apache-kafka - Kafka 实时流与微服务
- c++ - Window Maximize/Minimize/Restore 的 WM Windows 消息是什么?
- c# - 如何移动对象而不卡顿?