首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >你如何实现Azure机器人适配卡?

你如何实现Azure机器人适配卡?
EN

Stack Overflow用户
提问于 2019-04-14 04:22:51
回答 1查看 185关注 0票数 0

我对在azure机器人中创建自适应卡的理解是通过硬编码。有没有更好的方法来创建自适应卡?因为想象一下,如果我们必须创建120张卡片。我们必须对文件进行硬编码,就像下面的代码一样,这不是一个好的做法。请帮帮我!谢谢

代码语言:javascript
运行
复制
 {
   "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.0",
    "body": [
      {
        "type": "Image",
        "url":"google.image.com",
        "size": "small"
      }
     ],
    "actions": [
    {
      "type": "Action.OpenUrl",
      "title": "Google",
      "url": "google.com"
     }
     ]
  }
EN

Stack Overflow用户

回答已采纳

发布于 2019-04-16 02:55:06

有几种不同的方法可以做到这一点。给出卡片:

代码语言:javascript
运行
复制
{
    "type": "AdaptiveCard",
    "body": [
        {
            "type": "Image",
            "id": "img",
            "selectAction": {
                "type": "Action.OpenUrl",
                "title": "Google",
                "url": "http://www.google.com"
            },
            "url": "https://imgplaceholder.com/420x320/ff7f7f/333333/fa-image"
        }
    ],
    "actions": [
        {
            "type": "Action.OpenUrl",
            "title": "Google",
            "url": "http://www.google.com"
        }
    ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.0"
}

它将呈现为:

假设我们使用以下命令导入它:

代码语言:javascript
运行
复制
import * as cardJson from './adaptiveCard.json';

然后我们的代码看起来像这样:

代码语言:javascript
运行
复制
const card = CardFactory.adaptiveCard(cardJson);
const msg = MessageFactory.text('');
msg.attachments = [card];
await context.sendActivity(msg);

1.直接编辑JSON

如果我们使用此命令来更改图像:

代码语言:javascript
运行
复制
cardJson.body[0].url = 'https://skillbotbuilder.gallerycdn.vsassets.io/extensions/skillbotbuilder/skillbotbuilder/1.0/1546976085901/Microsoft.VisualStudio.Services.Icons.Default';

我们得到:

因此,您可以将.json更多地用作模板,然后使用javascript在其基础上构建。或者:

2.使用不同类型的卡

Here's a link to other card types

然后您可以使用CardFactory来构建这些卡。

类似于上面的Hero Card将如下所示:

代码语言:javascript
运行
复制
const hero = CardFactory.heroCard(
    null,
    CardFactory.images(['https://imgplaceholder.com/420x320/ff7f7f/333333/fa-image']),
    CardFactory.actions([{
        type: 'Action.OpenUrl',
        title: 'Google',
        value: 'Google.com'
    }])
);
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55669536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档