You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Microsoft Teams任务模块点击卡片按钮显示空白屏问题咨询

排查Teams机器人卡片按钮空白的解决方案

我之前在调试Teams机器人卡片交互的时候也碰到过类似的问题,结合你描述的情况——微软示例代码部署后仅Adaptive Card按钮正常,其他按钮点击空白,但GitHub ZIP包能正常运行,给你整理几个针对性的排查步骤:

1. 核对卡片按钮的Action配置细节

首先检查非Adaptive Card按钮的Action定义,大概率是这里出现了问题:

  • 确认卡片的$schema版本是否符合Teams的要求,比如使用https://adaptivecards.io/schemas/adaptive-card.json的最新稳定版本(比如1.5或1.6),Teams对旧版本的Action支持可能有限。
  • 检查Action的type字段是否拼写正确,比如Action.Submit必须首字母大写,小写的action.submit会被Teams解析失败。
  • 对于Action.Submit类型的按钮,确认是否携带了合法的data字段,如果data格式错误(比如JSON语法错误),会导致机器人无法处理回调,进而出现空白。

2. 对比示例代码与ZIP包的核心差异

把你使用的微软示例代码和GitHub ZIP包的代码做逐行对比,重点关注这几个部分:

  • 卡片生成逻辑:看ZIP包里的非Adaptive Card按钮是否有额外的配置(比如指定了channelData或者attachmentLayout),而示例代码里遗漏了。
  • 回调处理逻辑:检查机器人后端对按钮提交的请求是否有完整的异常捕获——如果示例代码里的回调函数抛出了未处理的异常,Teams客户端就会显示空白,而ZIP包可能已经处理了这些异常。
  • 依赖版本:核对两个项目的package.json(或者.csproj)里的Teams相关SDK版本,比如Microsoft.Bot.BuilderTeamsFx等,版本不兼容会导致交互逻辑失效。

3. 验证机器人端点的可用性

  • 用Postman或者curl工具模拟Teams的POST请求,调用你的机器人消息端点,看是否能返回200 OK的响应。如果端点无法正常接收请求,按钮回调就会失败。
  • 检查Azure Bot Service里的Messaging endpoint配置是否正确,有没有拼写错误或者域名未备案的情况。

4. 查看Teams客户端的调试日志

打开Teams客户端的开发者工具(Windows:Ctrl+Shift+I;Mac:Cmd+Opt+I),点击空白按钮后观察:

  • Network标签:看是否有失败的请求(比如404、500状态码),或者响应格式不符合Teams的要求。
  • Console标签:有没有出现卡片解析错误、Action处理失败的JS报错,这些信息能直接定位问题根源。

5. 再检查Manifest文件的关键配置

虽然你说修改Manifest无效,但还是确认这几个容易忽略的点:

  • validDomains字段是否包含了机器人的端点域名,如果按钮回调涉及到外部域名,未添加到白名单会被Teams拦截。
  • bots部分的scopes是否覆盖了你测试的场景(比如personalteam),如果测试的是团队聊天,但Manifest只配置了personal,可能会出现交互异常。

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

火山引擎 最新活动