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

如何使用Microsoft Bot Framework发送带图片的富文本消息

解决方案

以下是经过实测可行的3种实现方案,你可以根据自己的业务需求选择:

  • 方案1:使用自适应卡片(最推荐,排版可控性最高)
    Teams对自适应卡片的支持度最高,可以完全按照你需要的顺序排布文本、图片等元素,实现任意富文本效果。操作方法如下:
    在发送的Activity对象中添加类型为application/vnd.microsoft.card.adaptive的附件,在卡片的body字段中按你需要的顺序添加TextBlock(文本元素)和Image(图片元素)即可,示例结构如下:

    {
      "type": "AdaptiveCard",
      "$schema": "http://adaptivecards.io/schemas/adaptive-card-1.4.json",
      "version": "1.4",
      "body": [
        {
          "type": "TextBlock",
          "text": "aaaaa"
        },
        {
          "type": "Image",
          "url": "https://ichef.bbci.co.uk/news/976/cpsprodpb/C448/production/_117684205_lotus.jpg",
          "altText": "test"
        }
      ]
    }
    

    这种方式可以完美实现你预期的按特定顺序混排图文的需求,支持插入多张图片、多段文本任意排列。

  • 方案2:使用HTML格式消息
    如果你不想引入自适应卡片,也可以直接用HTML标签实现图文混排,需要做两个修改:

    1. 将Activity的textFormat属性设置为html
    2. text字段内容用HTML标签编写,用<img>标签插入图片,示例如下:
    <p>aaaaa</p>
    <img src="https://ichef.bbci.co.uk/news/976/cpsprodpb/C448/production/_117684205_lotus.jpg" alt="test">
    

    这种方式实现简单,但是排版调整的灵活度不如自适应卡片。

  • 方案3:修复Markdown格式问题实现解析
    你之前使用的Markdown无法解析是因为Teams自带的Markdown解析器存在限制,调整两个配置即可:

    1. 将Activity的textFormat属性明确设置为markdown
    2. 去掉Markdown图片语法中的title字段,Teams解析器对带title的内联图片支持存在缺陷,修改后示例如下:
    aaaaa![test](https://ichef.bbci.co.uk/news/976/cpsprodpb/C448/production/_117684205_lotus.jpg)
    

    注意:这种方式对图片域名有要求,如果图片域名被Teams安全策略拦截仍然无法显示,优先使用前两种方案。

通用注意事项:所有方案中使用的图片链接都必须是公网可直接访问、无需身份验证的资源,否则Teams客户端无法拉取资源会显示裂图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:15:03