You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bot Framework Teams环境下HeroCard的Call类型按钮无法正常显示

Teams Bot 对话中实现可触发呼叫按钮的落地方法

根因说明

Teams 客户端对 Bot Framework 定义的通用卡片动作存在兼容差异,原生 ActionTypes.Call 类型的卡片动作并未适配 Bot 消息的渲染逻辑,即使完全按照通用规范完成配置,也会出现按钮被直接过滤、不展示的情况,不属于代码编写错误导致的问题。

可落地的实现方案

  • 通用拨号场景:使用 OpenUrl 动作配合标准 tel: 协议触发系统呼叫
    Teams 客户端对 tel: 开头链接的识别逻辑和 http/https 链接完全一致,点击后会自动唤起系统默认拨号应用,达到和原生 Call 动作完全相同的呼叫触发效果,且全端兼容。
    调整后的代码示例:
    const buttons = [
      { type: ActionTypes.OpenUrl, title: '1. Open URL', value: 'http://www.google.com' },
      // 替换原Call类型按钮的配置
      { type: ActionTypes.OpenUrl, title: '2. 拨打服务热线', value: 'tel:08001323333' },
      { type: ActionTypes.ImBack, title: '3. Uploaded Attachment', value: '3' },
      { type: ActionTypes.OpenUrl, title: '4. 拨打专属客服', value: 'tel:45456544' },
    ];
    
    const card = CardFactory.heroCard('', undefined, buttons, {
      text: 'Select your choices.',
    });
    
  • Teams 内部呼叫场景:使用 Teams 专属的 invoke 动作唤起内置呼叫能力
    如果需要不跳出 Teams 客户端、直接在组织内发起 Teams 语音呼叫,可以配置 Teams 专用的卡片调用动作,绑定 Teams 呼叫接口,点击后会直接在当前会话内发起和目标联系人/号码的 Teams 通话,体验更流畅。

配置注意事项

  • tel: 号码串保持标准格式即可,不需要额外做 URL 编码,格式异常会导致链接识别失败
  • 配置卡片按钮时不要混入 Teams 不支持的动作类型,否则可能触发整组按钮的渲染异常
  • 若使用 Teams 内置呼叫能力,需要确保目标号码、联系人在当前 Teams 租户的可访问通讯录范围内,否则会出现呼叫发起失败的提示

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 23:36:01