如何检查 bot/application 是否从 ms teams 中卸载?

How to check if bot/application is uninstalled from ms teams?

我在我的团队中安装了一个机器人应用程序,使用团队范围。现在,当这个应用程序从团队中卸载时,有什么我可以 get/monitor 吗?

我正在查看 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();
        });
    }
}

但对我来说,当我删除机器人应用程序时,我没有收到此事件。我通过选择卸载从应用程序内部手动删除机器人应用程序。

这样的事情可能存在,但我不知道是否存在 - 让我们看看 S.O 上是否有 Microsoft 团队成员。可以回答。同时,这只是出于兴趣,在 个人 范围内有 public 机器人卸载事件的预览版(您的机器人在 团队中 范围,所以这不适用):https://docs.microsoft.com/en-us/microsoftteams/platform/bots/how-to/conversations/subscribe-to-conversation-events?tabs=dotnet#uninstall-behavior-for-personal-app-with-bot

当通过导航到更多选项 > 管理团队 > 应用程序 > 卸载卸载应用程序时,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"
    }
}}