Адаптивная карта внутри адаптивной карты для часто задаваемых вопросов

#json #bots #chatbot #adaptive-cards

#json #боты #чат-бот #адаптивные карты

Вопрос:

Я подумываю о создании адаптивной карточки для часто задаваемых вопросов. Итак, есть карточка с действием.Покажите карточку с заголовком Часто задаваемые вопросы. Как только пользователь нажимает на Часто задаваемые вопросы, карточка должна развернуться, чтобы показать 5 вопросов. Вопрос сам по себе является адаптивной карточкой, поэтому, когда пользователь нажимает на вопросы, карточка открывается, чтобы показать ответ.

Мне не удается разместить карту внутри карты. Вот мой JSON, который я создал с помощью Adaptive Card designer

 {
    "type": "AdaptiveCard",
    "body": [
        {
            "type": "TextBlock",
            "size": "Medium",
            "weight": "Bolder",
            "text": "Hi I am a ChatBot."
        },
        {
            "type": "TextBlock",
            "text": "Look at FAQs below.",
            "wrap": true
        }
    ],
    "actions": [
        {
            "type": "Action.ShowCard",
            "title": "FAQs",
            "card": {
                "type": "AdaptiveCard",
                "style": "emphasis",
                "body": [
                    {
                        "type": "TextBlock",
                        "text": "How quickly can we close?"
                    }
                ],
                "$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
            }
        },
        {
            "type": "Action.ShowCard",
            "title": "Comment",
            "card": {
                "type": "AdaptiveCard",
                "style": "emphasis",
                "body": [
                    {
                        "type": "Input.Text",
                        "id": "comment",
                        "placeholder": "Enter your comment",
                        "isMultiline": true
                    }
                ],
                "actions": [
                    {
                        "type": "Action.Submit",
                        "title": "OK"
                    }
                ],
                "$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
            }
        }
    ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.0"
}
  

Когда я ввожу действие.Показать карточку внутри действия.Тег ShowCard выдает ошибку и изменяет действие.Показать карточку в AdpativeCard. Может ли кто-нибудь показать мне структуру для такого дизайна. Это будет полезно, потому что мне нужно расширить эти часто задаваемые вопросы.

Комментарии:

1. Можете ли вы объяснить, когда вы говорите, что выполняете действие. Показать карточку внутри действия. Тег ShowCard?

Ответ №1:

Возможно, я не понимаю вашу проблему, но я смог создать желаемую структуру в конструкторе без проблем:

 {
    "type": "AdaptiveCard",
    "body": [
        {
            "type": "TextBlock",
            "size": "Medium",
            "weight": "Bolder",
            "text": "Hi I am a ChatBot."
        },
        {
            "type": "TextBlock",
            "text": "Look at FAQs below.",
            "wrap": true
        }
    ],
    "actions": [
        {
            "type": "Action.ShowCard",
            "title": "FAQs",
            "card": {
                "type": "AdaptiveCard",
                "style": "emphasis",
                "actions": [
                    {
                        "type": "Action.ShowCard",
                        "title": "How quickly can we close?",
                        "card": {
                            "type": "AdaptiveCard",
                            "style": "emphasis",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "text": "Never"
                                }
                            ],
                            "$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
                        }
                    },
                    {
                        "type": "Action.ShowCard",
                        "title": "Second question",
                        "card": {
                            "type": "AdaptiveCard",
                            "style": "emphasis",
                            "body": [
                                {
                                    "type": "TextBlock",
                                    "text": "Second answer"
                                }
                            ],
                            "$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
                        }
                    }
                ],
                "$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
            }
        },
        {
            "type": "Action.ShowCard",
            "title": "Comment",
            "card": {
                "type": "AdaptiveCard",
                "style": "emphasis",
                "body": [
                    {
                        "type": "Input.Text",
                        "id": "comment",
                        "placeholder": "Enter your comment",
                        "isMultiline": true
                    }
                ],
                "actions": [
                    {
                        "type": "Action.Submit",
                        "title": "OK"
                    }
                ],
                "$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
            }
        }
    ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.0"
}
  

Комментарии:

1. Спасибо, что работает отлично. Я вижу, где я был неправ. Вы должны добавить тег действия для каждого вопроса. Я этого не делал.

2. Могу ли я размещать вопросы не в одной строке, а в стопке?

3. Расположение действий будет контролироваться клиентом канала, и вы не сможете повлиять на это, если не используете веб-чат. К счастью, большинство каналов, которые я видел, выполняют суммирование действий, поэтому вы должны увидеть желаемое поведение, как только используете карту вне конструктора. Если вам нужна возможность изменять макет действия, не стесняйтесь отправлять запрос на функцию в репозитории: github.com/Microsoft/AdaptiveCards/issues