Microsoft Teams机器人聊天中Task Module异常显示安装弹窗
问题描述
在Microsoft Teams机器人聊天中打开Task Module时,未显示预期的Task Module,而是弹出「安装/添加」应用弹窗。点击弹窗上的「Add」按钮后,弹窗关闭,正确的Task Module才会加载;点击「X」则关闭弹窗并在聊天中显示错误,无法打开目标Task Module。每次尝试打开Task Module都会出现该安装弹窗,严重影响用户体验与应用功能,且不清楚点击「Add」按钮的实际作用。
预期行为
点击「Open」按钮时应直接加载预期的Task Module。
截图说明
- 机器人聊天中的Adaptive Card消息,「Open」按钮用于唤起Task Module
- 点击「Open」后弹出带「Add」按钮的安装弹窗,点击「X」报错,点击「Add」才加载正确Task Module
应用清单(manifest.json)
已脱敏的清单内容如下:
{ "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.16/MicrosoftTeams.schema.json", "version": "1.0.8", "manifestVersion": "1.16", "id": "[REDACTED]", "packageName": "com.package.name", "name": { "short": "[REDACTED]", "full": "" }, "developer": { "name": "[REDACTED]", "mpnId": "", "websiteUrl": "[REDACTED]", "privacyUrl": "[REDACTED]", "termsOfUseUrl": "[REDACTED]" }, "description": { "short": "[REDACTED]", "full": "[REDACTED]" }, "icons": { "outline": "outline.png", "color": "color.png" }, "accentColor": "#430097", "bots": [ { "botId": "[REDACTED]", "scopes": [ "team" ], "isNotificationOnly": false, "supportsCalling": false, "supportsVideo": false, "supportsFiles": false } ], "validDomains": [], "authorization": { "permissions": { "orgWide": [], "resourceSpecific": [ { "name": "ChannelMessage.Read.Group", "type": "Application" } ] } } }
Task Module代码片段
{ "task": { "type": "continue", "value": { "title": "Test Module", "height": "medium", "width": "medium", "card": { "contentType": "application/vnd.microsoft.card.adaptive", "content": { "type": "AdaptiveCard", "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "version": "1.4", "body": [ { "type": "TextBlock", "text": "Hello, world!" } ] } } } } }
补充说明
- 该问题仅出现在聊天场景,频道中发送相同消息时Task Module可正常工作
- 应用清单仅使用「team」范围,未使用「personal」范围
- 问题仅在桌面端(PC和Mac)及网页端出现,移动端客户端运行正常
问题原因及解决方案
核心原因
应用清单中机器人仅配置了team作用域,而聊天场景(群聊或1:1聊天)属于groupchat或personal作用域,Teams桌面/网页端会判定应用未在该场景下获得授权,因此触发安装弹窗要求用户将应用关联到当前聊天会话。点击「Add」的作用就是临时将应用绑定到该聊天上下文,使其具备加载Task Module的权限。
修复步骤
更新机器人作用域配置
修改应用清单中bots字段的scopes数组,添加聊天场景对应的作用域:"bots": [ { "botId": "[REDACTED]", "scopes": [ "team", "groupchat" // 支持群聊场景,若需1:1聊天则再添加"personal" ], "isNotificationOnly": false, "supportsCalling": false, "supportsVideo": false, "supportsFiles": false } ]重新部署应用
将更新后的应用清单重新上传至Teams管理中心或通过应用商店发布,确保用户端获取到最新配置。补充必要权限(可选)
若应用需要在聊天场景中执行特定操作(如读取聊天消息),需在authorization.permissions.resourceSpecific中添加对应权限:"resourceSpecific": [ { "name": "ChannelMessage.Read.Group", "type": "Application" }, { "name": "ChatMessage.Read.Chat", // 群聊消息读取权限 "type": "Application" } ]
额外说明
移动端未触发弹窗是因为Teams移动端对聊天场景的权限校验逻辑与桌面/网页端不同,但为了全平台体验一致,仍需配置正确的作用域。
内容的提问来源于stack exchange,提问作者Hunter

