Каркас бота Hero card без параметра изображения - PullRequest
1 голос
/ 22 апреля 2020

Как избежать параметра изображения в каркасе бота Hero, чтобы я мог отображать только опции. следующий код не работает, только название карты героя BotFramework воспроизводится createHeroCard() { return CardFactory.heroCard( 'BotFramework Hero Card', CardFactory.actions([ { type: 'imBack', title: 'ABC', value: 'ABC' }, { type: 'imBack', title: 'DATA', value: 'DATA' }, ]) ); }

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

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'
                },
            ])
        );
    }

Если вы вообще не хотите заголовок, вы можете просто пропустить пустую строку (например, '') в качестве первого аргумента.

0 голосов
/ 22 апреля 2020

Я noob на node.js Я сделал то же самое на C#, который работал, как ожидалось. Вы можете попробовать конвертировать то же самое. Вот фрагмент кода для вашей помощи.

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:

enter image description here

Надеюсь, что это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...