【问题标题】:How to use Adaptive Cards on Teams Messaging Extension with thumbnail card preview?如何使用带有缩略图卡预览的 Teams 消息扩展上的自适应卡?
【发布时间】:2020-01-15 07:00:01
【问题描述】:

我想使用消息扩展将卡片发送到团队频道。在消息扩展上,我需要显示预览缩略图卡,然后单击该缩略图将显示自适应卡。

我尝试了以下代码,但在尝试使用“MessagingExtensionResult”时出现错误。此外,我无法为“MessagingExtensionResult”添加 dll,它给出了不兼容的版本错误。我正在使用 .Net 框架 4.6。

 var results = new ComposeExtensionResult()
                {
                    AttachmentLayout = "list",
                    Type = "result",
                    Attachments = new List<ComposeExtensionAttachment>(),
                };

   var card = CardHelper.CreateCardForExperties(pos, true);
   var composeExtensionAttachment = card.ToAttachment().ToComposeExtensionAttachment();
results.Attachments.Add(new ComposeExtensionAttachment
                        {
                            ContentType = "application/vnd.microsoft.teams.card.adaptive",
                            Content = JsonConvert.DeserializeObject(updatedJsonString),
                            Preview = composeExtensionAttachment
                        });

【问题讨论】:

  • 澄清一下,您使用的是Bot Builder Microsoft Teams Extensions?如果是这样,您正在运行什么版本的机器人框架(BotBuilder)?这些扩展仅适用于机器人框架的 v3。
  • @DanaV 我正在使用机器人框架 v3。我尝试了以下解决方案,但它给了我 500- 内部服务器错误。 stackoverflow.com/questions/57116935/…
  • 我不认为vnd.microsoft.teams.card.adaptive 是有效的内容类型。我相信它应该是vnd.microsoft.card.adaptive。让我知道改变是否有帮助。你到底得到了什么错误?这是基于搜索的消息扩展程序吗?
  • 解决了!上面的代码有效,我已发送缩略图卡作为预览并将其附加到自适应卡。

标签: azure botframework azure-bot-service adaptive-cards


【解决方案1】:

使用下面的代码,我们可以从缩略图卡预览中调用自适应卡。

ComposeExtensionResponse response = null;

 1.  var results = new ComposeExtensionResult()
            {
                AttachmentLayout = "list",
                Type = "result",
                Attachments = new List<ComposeExtensionAttachment>(),
            };
  1. 创建返回缩略图卡(预览卡)的函数

    var previewThumbnailCard = CreateThumbnailCard();

  2. 创建一个以附件形式返回自适应卡片的函数。 var adaptivecardattachment = CreateAdaptiveCardAsAttachment();

  3. 施放该附件卡以组成扩展附件并通过 缩略图卡作为附件。 var composeExtensionAttachmentAdaptive = adaptivecardattachment .ToComposeExtensionAttachment(previewThumbnailCard.ToAttachment());

    1. 返回响应
                {
                    ComposeExtension = results
                };
    return response;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-06
    • 2021-08-06
    • 1970-01-01
    相关资源
    最近更新 更多