Предоставление общего доступа к отзыву:
Мы хотели бы ваши отзывы о документации разработчика Microsoft Teams. Ответьте на наш короткий трехпрошенный опрос.Пройти опрос
Этот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
Примеры кода в этом разделе основаны на версии 4.6 и более поздних версиях пакета SDK Bot Framework. Если вы ищете документацию по более ранним версиям, см. раздел Расширения сообщений — пакет SDK версии 3 в папке Resources документации.
После отправки пользователем команды поиска веб-служба получает composeExtension/query сообщение вызова, содержащее value объект с параметрами поиска. Вызов активируется со следующими условиями:
Как символы вводятся в поле поиска.
initialRun в манифесте приложения задано значение true, и вы получите сообщение о вызове, как только будет вызвана команда поиска. Дополнительные сведения см. в статье Запрос по умолчанию.
В этом документе описано, как реагировать на запросы пользователей в виде карточек и предварительных просмотров, а также об условиях, при которых Microsoft Teams выдает запрос по умолчанию.
Параметры запроса находятся в объекте value запроса, который включает следующие свойства:
Имя свойства
Назначение
commandId
Имя команды, вызываемой пользователем, соответствующее одной из команд, объявленных в манифесте приложения.
parameters
Массив параметров. Каждый объект параметра содержит имя параметра, а также значение параметра, предоставленное пользователем.
queryOptions
Параметры разбиения на страницы: skip: количество пропусков для этого запроса count: количество возвращаемых элементов.
Когда пользователь выполняет запрос, Microsoft Teams отправляет к вашей службе синхронный HTTP-запрос. На этом этапе у кода есть 5 секунды для предоставления HTTP-ответа на запрос. В течение этого времени служба может выполнять больше подстановки или любую другую бизнес-логику, необходимую для обслуживания запроса.
Служба должна ответить результатами, соответствующими запросу пользователя. В ответе должен быть указан код 200 OK состояния HTTP и допустимый объект приложения или JSON со следующими свойствами:
Имя свойства
Назначение
composeExtension
Конверт ответа верхнего уровня.
composeExtension.type
Тип ответа. Поддерживаются следующие типы: result: отображает список результатов поиска. auth: запрашивает проверку подлинности пользователя. config: предлагает пользователю настроить расширение сообщений. message: отображает текстовое сообщение.
composeExtension.attachmentLayout
Задает макет вложений. Используется для ответов типа result. Поддерживаются следующие типы: list: список объектов карточек, содержащих поля эскизов, заголовков и текстовых полей. grid: сетка эскизов изображений
composeExtension.attachments
Массив допустимых объектов вложений. Используется для ответов типа result. Поддерживаются следующие типы: application/vnd.microsoft.card.thumbnail application/vnd.microsoft.card.hero application/vnd.microsoft.teams.card.o365connector application/vnd.microsoft.card.adaptive
composeExtension.suggestedActions
Предлагаемые действия. Используется для ответов типа auth или config.
composeExtension.text
Отображаемое сообщение. Используется для ответов типа message.
Ответ конфигурации
Ответ конфигурации — это данные, возвращаемые сервером или приложением для настройки и включения расширения сообщений на платформе обмена сообщениями. Следующий код является примером конфигурации расширения сообщений:
Список результатов отображается в пользовательском интерфейсе Microsoft Teams с предварительным просмотром каждого элемента. Предварительная версия создается одним из двух способов:
preview Использование свойства в объекте attachment . Вложение preview может быть только карточкой "Герой" или "Эскиз".
Извлечение из основных titleсвойств attachment , textи image объекта . Основные свойства используются только в том случае, preview если свойство не указано.
Для карточки "Герой" или "Эскиз", за исключением действия вызова, другие действия, такие как кнопка и касание, не поддерживаются в карточке предварительного просмотра.
Чтобы отправить адаптивную карточку или карточку соединителя для групп Microsoft 365, необходимо включить предварительную версию. Свойство preview должно быть карточкой "Герой" или "Эскиз". Если не указать свойство предварительного просмотра в объекте attachment , предварительный просмотр не создается.
Для карточек главного элемента и эскизов не требуется указывать свойство предварительного просмотра. Предварительный просмотр создается по умолчанию.
protectedoverrideasync Task<MessagingExtensionResponse> OnTeamsMessagingExtensionQueryAsync(ITurnContext<IInvokeActivity> turnContext, MessagingExtensionQuery query, CancellationToken cancellationToken)
{
var text = query?.Parameters?[0]?.Value asstring ?? string.Empty;
// Searches NuGet for a package.var obj = JObject.Parse(await (new HttpClient()).GetStringAsync($"https://azuresearch-usnc.nuget.org/query?q=id:{text}&prerelease=true"));
var packages = obj["data"].Select(item => (item["id"].ToString(), item["version"].ToString(), item["description"].ToString()));
// We take every row of the results and wrap them in cards wrapped in in MessagingExtensionAttachment objects.// The Preview is optional, if it includes a Tap, that will trigger the OnTeamsMessagingExtensionSelectItemAsync event back on this bot.var attachments = packages.Select(package => new MessagingExtensionAttachment
{
ContentType = HeroCard.ContentType,
Content = new HeroCard { Title = package.Item1 },
Preview = new HeroCard { Title = package.Item1, Tap = new CardAction { Type = "invoke", Value = package } }.ToAttachment()
})
.ToList();
// The list of MessagingExtensionAttachments must we wrapped in a MessagingExtensionResult wrapped in a MessagingExtensionResponse.returnnew MessagingExtensionResponse
{
ComposeExtension = new MessagingExtensionResult
{
Type = "result",
AttachmentLayout = "list",
Attachments = attachments
}
};
}
protectedoverride Task<MessagingExtensionResponse> OnTeamsMessagingExtensionSelectItemAsync(ITurnContext<IInvokeActivity> turnContext, JObject query, CancellationToken cancellationToken)
{
// The Preview card's Tap should have a Value property assigned, this will be returned to the bot in this event.var (packageId, version, description, projectUrl, iconUrl) = query.ToObject<(string, string, string, string, string)>();
var card = new ThumbnailCard
{
Title = "Card Select Item",
Subtitle = description
};
var attachment = new MessagingExtensionAttachment
{
ContentType = ThumbnailCard.ContentType,
Content = card,
};
return Task.FromResult(new MessagingExtensionResponse
{
ComposeExtension = new MessagingExtensionResult
{
Type = "result",
AttachmentLayout = "list",
Attachments = new List<MessagingExtensionAttachment> { attachment }
}
});
}
Если в манифесте задано значение initialRun , true Microsoft Teams выдает запрос по умолчанию , когда пользователь впервые открывает расширение сообщения. Ваша служба может ответить на этот запрос набором предварительно заполненных результатов. Это полезно, если команда поиска требует проверки подлинности или настройки, отображая недавно просмотрированные элементы, избранное или любую другую информацию, которая не зависит от введенных пользователем данных.
Запрос по умолчанию имеет ту же структуру, что и любой обычный запрос пользователя, при этом name для поля задано значение initialRun и value задано значение , true как показано в следующем объекте:
В этом примере показано, как создать расширение сообщений на основе поиска. Он выполняет поиск пакетов nudget и отображает результаты в расширении обмена сообщениями на основе поиска.
Проверка подлинности и конфигурация расширения сообщений Teams
В этом примере показано расширение сообщений, которое имеет страницу конфигурации, принимает поисковые запросы и возвращает результаты после входа пользователя. В нем также демонстрируется распаковка ссылки нулевой установки приложения вместе с распаковкой обычной ссылки
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о Platform Docs
Platform Docs — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
Learn how to build message extensions that allow users to interact with external services within their flow of work in Microsoft Teams and Microsoft 365 Copilot.
Узнайте, как определять команды действий расширения сообщений с помощью манифеста приложения в Teams. Пример (.NET, Node.js), create dialog (task module), ответ на действие отправки диалога.
Узнайте, как создавать и настраивать расширения сообщений на основе действий для Microsoft Teams с помощью пакета SDK Bot Framework, чтобы разрешить пользователям активировать внешние службы.
Узнайте, как создавать расширения сообщений на основе поиска для Microsoft Teams с помощью пакета SDK Bot Framework версии 3, обрабатывать запросы, обработчики событий, проверку подлинности и поддержку пакета SDK.
Узнайте, как создавать и отправлять диалоги (модули задач). Обработайте начальное действие вызова и ответите диалоговым окном (модулем задач) из команды расширения сообщения действия.