Отправьте героя или адаптивную карточку и получите ввод пользователя о приветствии - PullRequest
0 голосов
/ 18 июня 2020

Я разрабатываю бота в. NET Core 3.1 C#. Я хочу отправить карту героя с 4 кнопками и приглашением, как только пользователь присоединится / активирует бота. Я пробовал это в OnMembersAddedAsyn c

if (member.Id != turnContext.Activity.Recipient.Id)
            {
                var welcomeCard = CreateAdaptiveCardAttachment();
                var response = MessageFactory.Attachment(welcomeCard);

                await turnContext.SendActivityAsync( response,  cancellationToken);
            }     

Это отобразит адаптивную карточку, где тип - Action.Submit. Но я не уверен, как получить значения кнопки, на которую нажимает клиент. Я пробовал это на OnMessageActivityAsyn c

 if (turnContext.Activity.Value != null)
        {
            var mainMenu = turnContext.Activity.Value;
        }

Но значения всегда равны нулю. Json для адаптивной карты:

 {
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.0",
  "body": [   
    {
      "type": "TextBlock",
      "spacing": "medium",
      "size": "default",
      "weight": "bolder",
      "text": "Welcome to ABC Bank !",
      "wrap": true,
      "maxLines": 0
    },
    {
      "type": "TextBlock",
      "size": "default",
      "isSubtle": true,
      "text": "Please select user type from below ....",
      "wrap": true,
      "maxLines": 0
    }
  ],
  "actions": [
    {
      "type": "Action.Submit",
      "title": "Consumer"
    },
    {
      "type": "Action.Submit",
      "title": "Client"
    },
    {
      "type": "Action.Submit",
      "title": "Merchant"
    }
  ]
}

1 Ответ

1 голос
/ 18 июня 2020

Да. Как сказано в комментариях, вам нужно добавить свойство data. Это не обязательно. Но если вы хотите узнать, какую опцию предоставил пользователь, вам необходимо указать ее. Поскольку у вас нет другого поля ввода. Это послужит входом для выполнения дальнейших операций.

Примечание : для любого элемента ввода вам необходимо использовать свойство id для идентификации собранных входных данных при выполнении действия отправки.
Аналогично для действия отправки data. Убедитесь, что значение в данных для каждого действия уникально. Если вы хотите, чтобы две кнопки выполняли одно и то же действие (переход к одному и тому же диалогу), вы можете указать такое же значение в data

Вот официальная ссылка, которая дает вам представление. Отправить действие

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

...