Последовательные рабочие процессы
Адаптивные карточки теперь поддерживают последовательные рабочие процессы, которые обновляются в соответствии с действиями пользователя. С помощью последовательных рабочих процессов адаптивные карточки обновляются в действиях пользователя, и пользователь может выполнять серию карточек, требующих ввода пользователем.
Action.Execute
поддерживает последовательные рабочие процессы, что позволяет разработчикам ботов возвращать адаптивные карточки в ответ на действие пользователя.
Например, рассмотрим сценарий, в котором кафетерий хочет принять заказ на команду или канал. При Action.Execute
выборе пользователя для различных элементов, таких как еда и напитки, можно записывать последовательно. Пользователь также может проходить через карточки в соответствии с логикой, определенной разработчиком бота.
На следующем рисунке показан последовательный рабочий процесс:
Пользователь может выполнять свой рабочий процесс, не изменяя карточку для других пользователей. Рабочий процесс также полезен для проведения викторин с помощью последовательных адаптивных карточек. На следующем рисунке показано, как разные пользователи могут находиться на разных этапах рабочего процесса и состояния карточки:
Примечание.
Чтобы синхронизировать ход выполнения пользователя на разных устройствах, используйте refresh
свойство в формате JSON адаптивной карточки.
Последовательный рабочий процесс для адаптивных карточек
В следующем коде приведен пример адаптивных карточек:
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.4",
"body": [
{
"type": "TextBlock",
"text": "Select from food options"
},
{
"type": "ActionSet",
"actions": [
{
"type": "Action.Execute",
"title": "Chicken",
"verb": "food",
"data": {
"item": "chicken"
}
},
{
"type": "Action.Execute",
"title": "Beef",
"verb": "food",
"data": {
"item": "beef"
}
},
{
"type": "Action.Execute",
"title": "Vegan",
"verb": "food",
"data": {
"item": "vegan"
}
}
]
}
]
}
Action.Execute
Вызов бота может возвращать адаптивные карточки в ответ, что заменяет существующую карточку в Teams.
В следующем примере показано, что бот возвращает при выборе продуктов питания или напитках или подтверждении заказа.
- При выборе продуктов питания из карточки 1, бот может вернуть карту для выбора напитков, которая является Картой 2.
- При выборе напитка из карточки 2 бот может вернуть карту подтверждения заказа, которая является Картой 3.
- При подтверждении заказа с карточки 3 бот может вернуть карту с подтверждением заказа, которая является Картой 4.
Вызов запроса, полученного на стороне бота
В следующем коде приведен пример запроса на вызов, полученного на стороне бота:
{
"type": "invoke",
"name": "adaptiveCard/action",
// ... other properties omitted for brevity
"value": {
"action": {
"type": "Action.Execute",
"id": "",
"verb": "food",
"data": {
"item": "vegan"
}
},
"trigger": "manual"
}
}
Вызов ответа для возврата адаптивных карточек
В следующем коде приведен пример ответа вызова для возврата адаптивных карточек:
string cardJson = "<adaptive card json>";
var card = JsonConvert.DeserializeObject(cardJson);
var adaptiveCardResponse = JObject.FromObject(new
{
statusCode = 200,
type = "application/vnd.microsoft.adaptive.card",
value = card
});
Примеры кода
Название примера | Описание | .NET | Node.js | Манифест |
---|---|---|---|---|
Бот организации питания Teams | В этом примере показан бот, который принимает заказ продуктов питания с помощью адаптивных карточек. | Просмотр | Недоступно | Недоступно |
Адаптивные карточки последовательных рабочих процессов | В этом примере демонстрируется реализация последовательных рабочих процессов, пользовательских представлений и текущих адаптивных карточек в ботах. | Просмотр | Просмотр | Просмотр |
См. также
Platform Docs