能否为Teams bot应用创建配置页收集安装配置信息?
Teams Bot 配置页实现方案
核心结论
Bot 应用原生支持和 Tab 完全一致的配置页能力,不需要通过主动向用户发消息问询的方式收集配置信息,这是官方推荐的标准化实现路径,和 Tab 配置页共用同一套 Teams JS SDK,不存在能力壁垒。配置完成后,用户安装 Bot 时会自动弹出配置页,安装后也可以通过 Bot 菜单的设置入口随时修改配置。
具体实现步骤
- 第一步:更新应用清单声明配置页
不需要额外开发 Tab 模块,直接在应用的manifest.json的bots配置块中新增configurationUrl字段,指向你部署好的配置页前端地址即可,参考配置片段:
{ "bots": [ { "botId": "你在Azure Bot服务注册的应用ID", "scopes": ["team", "groupChat", "personal"], "configurationUrl": "https://你的服务域名/teams-bot-config-page", "supportsFiles": false, "isNotificationOnly": false } ], "validDomains": [ "你的服务域名" ] }
配置完成后,用户将 Bot 添加到频道/群组/个人会话时,Teams 会自动弹出配置页,用户完成填写提交后才能完成安装流程。
第二步:配置页前端逻辑开发
逻辑和 Tab 配置页完全一致,引入 Teams JS SDK 即可,不需要做 Bot 场景的特殊适配:- 页面加载完成后首先调用
microsoftTeams.app.initialize()完成 SDK 初始化 - 初始化完成后调用
microsoftTeams.app.getContext()获取当前安装上下文,直接拿到全局唯一的teamId/chatId、当前操作用户的基础信息,不需要用户手动填写关联ID - 渲染自定义表单,收集需要用户提供的 API Key、客户关联标识等信息
- 用户填写信息时,你可以先把表单内容传到后端做合法性校验(比如校验 API Key 是否有效),校验通过后调用
microsoftTeams.pages.config.setValidityState(true)激活配置页底部的「保存」按钮 - 监听保存事件,用户点击保存后调用
microsoftTeams.pages.config.setConfig()通知 Teams 配置完成,页面会自动关闭,Bot 安装流程走完。
- 页面加载完成后首先调用
第三步:后端关联逻辑处理
用户提交配置时,直接把表单收集到的 API Key、客户标识和之前拿到的teamId/chatId绑定存在你的后端数据库即可。后续你需要主动向频道推送消息时,直接根据teamId/chatId匹配对应的客户配置、调用对应的业务接口即可。
用户后续修改配置时,Teams 会自动打开同一个配置页,你可以提前拉取已存储的配置预填到表单里,用户修改提交后更新数据库的绑定关系即可,不需要额外开发配置修改入口。
常见注意点
- 配置页的域名必须加入 manifest 的
validDomains列表,否则会被 Teams 拦截无法加载 - API Key 这类敏感信息只存储在你的后端即可,不要回传到前端或者存在 Teams 上下文里
- 不需要额外处理安装完成的回调事件,只要配置提交成功,你存储的
teamId和客户标识的绑定关系就可以直接使用,后续主动发消息调用 Bot Framework 的接口传对应teamId即可。
内容的提问来源于stack exchange,提问作者InversionDK
相关产品推荐
相关产品推荐

