Как вернуть сообщение с адаптивной карты

Я использую адаптивную карту с двумя действиями.

"actions": [

    {
      "type": "Action.Submit",
      "title": "Cards related queries",
      "data": "Cards_intent"
    },
    {
      "type": "Action.Submit",
      "title": "Accounts related queries",
      "data": "Accounts_intent"
    }
]

Но когда пользователи выбирают действие, я не хочу, чтобы пользователь видел «Accounts_intent», отображаемый в окне чата. Вместо этого я хочу, чтобы отображались "Запросы, связанные с аккаунтами"

Проблема:

введите здесь описание изображения


person TSR    schedule 05.09.2019    source источник
comment
Эй, вы можете попробовать поместить свое значение data как json с ключами value и id, например: "data": { "value": "Accounts related queries", "id": "Accounts_intent" } тогда оба id и value пройдут в вашем stepContext.Result. Затем вы можете выполнить свою логику, зная, что Accounts_intent был передан на ваш следующий шаг, а Accounts related queries будет отправлен в чат.   -  person craigbot    schedule 06.09.2019
comment
Приемлем ли мой ответ?   -  person Kyle Delaney    schedule 12.09.2019


Ответы (1)


Я думаю у вас есть несколько вариантов

Опция 1

Если вы хотите продолжать использовать адаптивную карту и вас беспокоит только то, что отображается в истории разговоров, просто измените строку в свойстве data на то, что вы хотите отобразить.

{
  "type": "Action.Submit",
  "title": "Accounts related queries",
  "data": "Accounts related queries"
}

Ваш бот должен уметь отвечать на действия с текстом «Запросы, связанные с аккаунтами». Имейте в виду, что пользователь также сможет ввести «Запросы, связанные с учетными записями» для достижения того же результата.

Вариант # 2

Если вы используете строки в качестве данных действия отправки, ваша карточка не должна иметь полей ввода. Это означает, что вы можете использовать любую расширенную карту вместо адаптивной карты или даже использовать предлагаемые действия.

Если вы определенно хотите, чтобы ваше действие содержало текст, отличный от того, который пользователь видит в истории разговоров, вы сможете сделать это только на каналах, которые его поддерживают. Facebook Messenger позволяет это сделать, но не поддерживает адаптивные карты. Наличие одного набора видимого текста и другого набора скрытых данных часто называется действием карты messageBack.

Вариант # 3

Если вас не волнует, что пользователь видит что-либо в истории разговоров, вы можете использовать идею craigbot о том, что данные действия отправки являются объектом вместо строки, или вы можете использовать действие карты в расширенной карте, отличной от Адаптивная карта.

Если вы хотите узнать больше об адаптивных карточках и особенно о действиях отправки, ознакомьтесь с моим последним сообщением в блоге: https://blog.botframework.com/2019/07/02/using-adaptive-cards-with-the-microsoft-bot-framework/

person Kyle Delaney    schedule 06.09.2019
comment
Пробовал с вариантом №2. Поддерживает ли эмулятор Webchat и Bot Framework эту функцию? - person TSR; 11.10.2019
comment
@TSR - Эмулятор на самом деле использует веб-чат, и да, они поддерживают messageBack - person Kyle Delaney; 11.10.2019