如何在C#版Bot Framework SDK v4开发的Teams Bot中集成使用Teams App Test Tool?
如何在C#版Bot Framework SDK v4开发的Teams Bot中集成使用Teams App Test Tool?
我完全懂你这种困境——手里只有BotId,没法用Teams Toolkit,用Bot Framework Emulator测试又和Teams实际环境有差异,想试试Teams App Test Tool却找不到C#相关的指引,确实头疼。其实不管是C#还是JS/TS开发的Bot,集成Test Tool的核心逻辑是相通的,下面给你一步步梳理可行的方案:
第一步:确保本地Bot可被公网访问
Teams App Test Tool需要能连接到你的Bot,所以如果你的Bot是本地运行的,得用ngrok把本地服务暴露到公网。启动ngrok的命令很简单:ngrok http 3978(3978是Bot Framework SDK默认的本地端口,如果你改了端口就换成对应的),运行后会得到一个类似https://xxxx-xx-xx-xx-xx.ngrok.io的公网地址。第二步:安装并打开Teams App Test Tool
你可以直接从微软官方获取Test Tool的安装包,安装到本地后启动它。第三步:配置Test Tool连接你的Bot
这里有两种方式:- 直接导入Bot信息
在Test Tool里找到「导入已有应用」或者类似的入口(界面可能会有小更新,找对应导入的选项),然后填写你的Bot的Microsoft App Id(就是你拿到的BotId),再把Bot的消息端点设置为https://<你的ngrok地址>/api/messages,如果你的Bot有客户端密码,也一并填上。 - 手动创建manifest文件导入
如果第一种方式找不到入口,你可以手动写一个极简的Teams App manifest文件(保存为manifest.json),内容大概是这样:
把这个文件打包成zip(只放manifest.json,不需要其他文件),然后在Test Tool里选择导入这个zip包就行。{ "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.16/MicrosoftTeams.schema.json", "manifestVersion": "1.16", "version": "1.0.0", "id": "<你的BotId>", "packageName": "com.yourcompany.bot", "name": { "short": "你的Bot名称" }, "description": { "short": "Bot功能描述" }, "bots": [ { "botId": "<你的BotId>", "scopes": [ "personal", "team", "groupchat" ], "supportsFiles": false, "isNotificationOnly": false } ], "validDomains": [ "<你的ngrok域名,比如xxxx-xx-xx-xx-xx.ngrok.io>" ] }
- 直接导入Bot信息
第四步:开始测试
配置完成后,你就可以在Test Tool里模拟Teams的各种交互场景了——比如发送消息、测试自适应卡片的Teams专属属性、触发频道消息、测试@提及功能等,这些场景的表现会比Bot Framework Emulator更贴近Teams实际环境,能帮你排查不少Emulator测不出来的问题。
一些注意事项
- 测试过程中要保持ngrok和你的本地Bot一直运行,不然Test Tool会断开连接
- 如果遇到身份验证失败的问题,先检查BotId和客户端密码是否和Test Tool里的配置一致,确保Bot的身份验证逻辑正常
- 要是Azure Admin没给你客户端密码,你可以确认下Bot是否允许匿名访问?不过一般生产级Bot都会启用身份验证,最好和Admin确认下相关权限配置
备注:内容来源于stack exchange,提问作者nykko
相关产品推荐
相关产品推荐

