如何用Visual Studio Kit SDK发布Echo Bot到Teams?侧载故障咨询
Echo Bot侧载Teams无响应问题排查与解决
未配置Azure资源是导致侧载失效的核心原因。本地调试依赖Bot Framework Emulator的本地代理机制,不需要公网地址和Azure身份验证,但Teams作为云端应用,必须通过公网访问你的Bot服务,且需要Azure提供的Bot注册信息完成身份校验,没做Azure配置的话,Teams根本无法和你的Bot建立有效连接。
关于
env.local文件:这个文件仅用于本地调试场景,侧载到Teams时不会被读取。你之前填的本地应用ID无效,必须使用Azure Bot注册生成的正式应用ID和客户端密码,且这些配置要在Bot的运行环境变量中正确设置,不能依赖本地配置文件。
以下是具体解决步骤:
创建Azure Bot资源
- 注册Azure账号后,创建「Azure Bot」资源,完成后获取应用ID和客户端密码(密码仅显示一次,务必保存)。
- 用ngrok将本地Bot服务的端口(默认3978)映射为公网地址,比如
https://abc123.ngrok.io/api/messages,把这个地址填到Azure Bot的「消息端点」设置中。
配置Bot环境变量
- 修改本地项目的配置文件(或环境变量),将
MicrosoftAppId和MicrosoftAppPassword替换为Azure Bot的对应信息。 - 若后续打包部署,需确保部署环境中已配置这两个环境变量,不能依赖本地的
env.local。
- 修改本地项目的配置文件(或环境变量),将
修正Teams应用清单
- 侧载用的
manifest.json里,bots字段的botId必须和Azure Bot的应用ID完全一致。 - 在
validDomains中添加你的公网域名(比如ngrok的abc123.ngrok.io),否则Teams会拦截Bot请求。
- 侧载用的
验证连接
- 启动本地Bot服务,保持ngrok运行,发送消息到Teams中的Bot,同时查看Bot控制台日志和ngrok的请求记录,确认请求是否正常到达Bot服务。
内容的提问来源于stack exchange,提问作者Bond James
相关产品推荐
相关产品推荐

