Пример кода модели универсальных действий — управление проектами
В этом примере показана реализация модели универсального действия, доступная для адаптивных карточек версии 1.4 или более поздней.
Требования
- Клиент Outlook/OWA доступен, и у вас есть учетная запись.
- Допустимое подчинение Azure.
- Общие сведения об Azure Bot Framework.
Настройка бота
- Зарегистрируйте бота в Azure Служба Bot, следуя инструкциям здесь.
- Убедитесь, что канал Outlook включен.
- Откройте ресурс бота в портал Azure.
- Откройте панель Каналы .
- Выберите канал Outlook в разделе Доступные каналы .
- На вкладке Сообщения с действиями нажмите кнопку Применить , а затем зарегистрируйтесь здесь.
- Заполните регистрационную форму, чтобы запросить доступ. Дополнительные сведения см. в разделе Регистрация службы с помощью панели мониторинга разработчика электронной почты с действиями .
- Создайте бота с помощью пакета SDK Bot Framework, следуя инструкциям здесь.
Шаг 1. Убедитесь, что полезные данные адаптивных карта готовы
Полезные данные JSON для сценария управления проектами можно найти здесь. Ниже вы можете просмотреть отрисовку полезных данных на экранах мобильных устройств и компьютеров.
Для универсальных действий необходимо использовать Action.Execute
метод , который собирает поля ввода и отправляет Invoke
действие типа adaptiveCard/action
целевому боту. Целевой бот может определить действие, выполненное verb
с помощью поля. Любые дополнительные входные данные можно отправить с помощью data
поля .
Полезные данные JSON
Ниже приведен фрагмент действия для сценария управления проектом.
{
"type": "ActionSet",
"actions": [
{
"type": "Action.Execute",
"title": "Mark complete",
"verb": "markComplete",
"data": {},
"isPrimary": true,
"style": "positive"
},
{
"type": "Action.ShowCard",
"title": "Add a comment",
"card": {
"type": "AdaptiveCard",
"body": [
{
"type": "Input.Text",
"id": "AddComment",
"placeholder": "Add a comment",
"isMultiline": true
},
{
"type": "ActionSet",
"actions": [
{
"type": "Action.Execute",
"title": "Submit",
"verb": "projectSubmitComment",
"data": "{Reason: {{AddComment.value}}}"
}
]
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"padding": "None"
}
}
],
"spacing": "None"
}
Дополнительные сведения см. в разделе Схема и свойства Action.Execute
Шаг 2. Создание пользовательской бизнес-логики в боте для управления проектами
В боте Azure можно использовать метод OnAdaptiveCardInvokeAsync, чтобы записать действие с помощью verb
поля, добавить бизнес-логику и отправить карта обновления обратно в Outlook.
protected override async Task<AdaptiveCardInvokeResponse> OnAdaptiveCardInvokeAsync(
ITurnContext<IInvokeActivity> turnContext,
AdaptiveCardInvokeValue invokeValue,
CancellationToken cancellationToken)
{
try
{
if (invokeValue.Action.Verb == "markComplete")
{
// This function can contain your business logic
// to capture the complete action and show the refresh card
return await ProcessProjectMarkComplete();
}
else if (invokeValue.Action.Verb == "projectSubmitComment")
{
// This function can contain your business logic
// to submit the comment and show the refresh car
return await ProcessProjectSubmitComment();
}
else
{
throw new InvokeResponseException(HttpStatusCode.NotImplemented);
}
}
catch (AdaptiveCardActionException e)
{
throw new InvokeResponseException(HttpStatusCode.NotImplemented, e.Response);
}
}
Бот можно протестировать локально или развернуть в Azure.
Шаг 3. Отправка сообщения с действиями
Вы можете отправить сообщение с действиями, поддерживаемое универсальными действиями, как и любое другое сообщение с действиями. Дополнительные сведения см. в статье Отправка сообщения с действиями по электронной почте.