You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何拦截Microsoft聊天机器人的installationUpdate事件并返回自定义消息

回答

有对应的可用处理程序,Bot Framework TypeScript SDK 原生支持 installationUpdate 事件的拦截处理,针对Teams场景建议优先用TeamsActivityHandler提供的细分事件方法,实现逻辑如下:

实现方案

方式1:重载TeamsActivityHandler的专属方法(推荐)

直接继承TeamsActivityHandler,重载onInstallationUpdateAdd方法即可拦截机器人被安装/添加的事件,自定义回复逻辑会直接覆盖默认问候语:

import { TeamsActivityHandler, TurnContext } from "botbuilder";

export class CustomBot extends TeamsActivityHandler {
  constructor() {
    super();

    // 机器人被添加/安装时触发
    this.onInstallationUpdateAdd(async (context: TurnContext, next) => {
      // 替换为你的自定义问候内容
      await context.sendActivity("您好,我是团队专属机器人,后续可以随时和我交互获取服务~");
      await next();
    });

    // 可选:机器人被卸载时触发的逻辑,按需实现
    this.onInstallationUpdateRemove(async (context: TurnContext, next) => {
      // 卸载时的清理逻辑
      await next();
    });
  }
}

方式2:通用ActivityHandler事件判断

如果没有使用Teams专属的Handler类,也可以直接通过通用事件入口判断Activity类型处理:

import { ActivityHandler, TurnContext } from "botbuilder";

export class CustomBot extends ActivityHandler {
  constructor() {
    super();

    this.onActivity(async (context: TurnContext, next) => {
      if (context.activity.type === "installationUpdate" && context.activity.action === "add") {
        await context.sendActivity("你的自定义问候内容");
      }
      await next();
    });
  }
}

注意事项

  • 请先检查机器人的Teams manifest配置,删除默认的安装问候触发规则,避免出现默认+自定义两条回复的问题
  • 你可以通过context.activity字段获取安装的租户、用户、会话等信息,实现个性化的问候内容

内容的提问来源于stack exchange,提问作者Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:15:01