#botframework #microsoft-teams #adaptive-cards
Вопрос:
У меня есть рабочее расширение composeExtension (расширение сообщения) в командах Microsoft.
Одна из команд есть query
, и при выборе элемента в списке вы опубликуете карточку героя в чате.
Следующее, что я ищу, — это запуск action
команды для сообщения и создание адаптивной карты с предварительно загруженной информацией из самого сообщения.
Ответ №1:
После проведения некоторых исследований и изучения документации MS — Определите команды действий расширения обмена сообщениями
Ниже приведено решение в NodeJS
Шаг 1. Обновите файл Манифеста
...
"composeExtensions": [
...
"commands": [
...
{
"id": "Action",
"type": "action",
"title": "Action",
"description": "Test command to run action on message context (message sharing)",
"context": [ "message" ]
}
...
]
...
]
...
Шаг 2: Обработка запроса
async handleTeamsMessagingExtensionFetchTask(context, action) {
...
if( action.commandId === 'Action') {
// here you can return anything eg: adaptive card
// below helper function will read the content of the message
let cardContent = await this.getAdaptiveCardContent(context);
let CardData = JSON.parse(cardContent);
}
...
}
async getAdaptiveCardContent(context) {
if (!context.hasOwnProperty("_activity") || !context._activity.hasOwnProperty("value")) {
return null;
}
let messagePayload = context._activity.value.messagePayload;
if (messagePayload) {
for (let i = 0, attachment; i < messagePayload.attachments.length; i ) {
attachment = messagePayload.attachments[i];
if (attachment.contentType === "application/vnd.microsoft.card.hero") { // In my case its a adaptive card
return attachment.content;
}
}
}
return null;
}
Комментарии:
1. Ваша проблема решена с помощью вышеуказанного решения или вы все еще ищете какую-либо помощь?
2. @ChetanSharma-msft, да, это решается с помощью вышеупомянутого решения.