【问题标题】:Bot framework Hero card without image parameterBot框架英雄卡无图片参数
【发布时间】:2020-04-22 22:50:38
【问题描述】:

如何避免英雄卡机器人框架中的图像参数,以便我只能显示选项。 以下代码不起作用,仅显示 BotFramework Hero Card 标题 createHeroCard() { return CardFactory.heroCard( 'BotFramework Hero Card', CardFactory.actions([ { type: 'imBack', title: 'ABC', value: 'ABC' }, { type: 'imBack', title: 'DATA', value: 'DATA' }, ]) ); }

【问题讨论】:

  • 您好,请问还有什么可以帮助您的吗?

标签: node.js botframework bots


【解决方案1】:

我是 node.js 的菜鸟,我在 C# 上做了同样的事情,它按预期工作。您可以尝试转换相同的。这是代码 sn-p 以供您帮助。

public IMessageActivity YesCreateSolutionFlow()
    {
        try
        {
            var yesNoActivity = Activity.CreateMessageActivity();
            var buttonList = new List<CardAction>();
            //Btn 1
            buttonList.Add(
           new CardAction()
           {
               Value = "https://partner.microsoft.com/en-US/solutions/my-solutions/create-solution",
               Type = "openUrl",
               Title = "Yes, please"
           });
            //Btn 2
            buttonList.Add(
           new CardAction()
           {
               Value = "I Would like a tutorial first",
               Type = "imBack",
               Title = "I Would like a tutorial first"
           });
            var responseCard = new HeroCard()
            {
                Text = "",
                Subtitle = string.Empty,
                Buttons = buttonList
            };

            // Create the attachment.
            var attachment = responseCard.ToAttachment();

            yesNoActivity.Attachments.Add(attachment);
            yesNoActivity.AttachmentLayout = AttachmentLayoutTypes.Carousel;
            return yesNoActivity;
        }
        catch (Exception ex)
        {
            throw new NotImplementedException(ex.Message, ex.InnerException);
        }

    }

最后,将这张卡片传递给turnContext.SendActivityAsync,如下所示:

      var yesCreateSolutionFlow= _customFlowRepository.YesCreateSolutionFlow();
      await turnContext.SendActivityAsync(yesCreateSolutionFlow).ConfigureAwait(false);

Bot Conversation Output:

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    CardFactory.heroCard 需要 3 或 4 个参数,您只提供了 2 个,所以我相信该方法试图将您的按钮解释为图像。如果您传递一个空数组作为第二个参数,我相信它会按预期工作,即

        createHeroCard() {
            return CardFactory.heroCard(
                'BotFramework Hero Card',
                [],
                CardFactory.actions([
                    {
                        type: 'imBack',
                        title: 'ABC',
                        value: 'ABC'
                    },
                    {
                        type: 'imBack',
                        title: 'DATA',
                        value: 'DATA'
                    },
                ])
            );
        }
    

    如果您根本不需要标题,您可以只传递一个空白字符串(即'')作为第一个参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-30
      • 2021-09-06
      • 2021-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多