Предоставление общего доступа к отзыву:
Мы хотели бы ваши отзывы о документации разработчика Microsoft Teams. Ответьте на наш короткий трехпрошенный опрос.Пройти опрос
Этот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
Примеры кода в этом разделе основаны на версии 4.6 и более поздних версиях пакета SDK Bot Framework. Если вы ищете документацию по более ранним версиям, см. раздел Расширения сообщений — пакет SDK версии 3 в папке Resources документации.
Модальное диалоговое окно (называемое модулем задач в TeamsJS версии 1.x) можно создать с помощью адаптивной карточки или встроенного веб-представления. Чтобы создать диалоговое окно, необходимо выполнить процесс, называемый первоначальным запросом вызова. В этом документе рассматриваются начальный запрос на вызов, свойства действия полезных данных при вызове диалогового окна из чата 1:1, групповой чат, канал (новая запись), канал (ответить на поток) и командное поле.
Примечание
Если вы не заполняете диалоговое окно параметрами, определенными в манифесте приложения, необходимо создать диалоговое окно для пользователей с адаптивной карточкой или внедренным веб-представлением.
Запрос начального вызова
В процессе запроса начального вызова ваша служба получает объект Activity типа composeExtensions/fetchTask, и вы должны ответить с использованием объекта task, содержащего адаптивную карточку или URL-адрес внедренного веб-представления. Вместе со стандартными свойствами действий бота полезные данные начального вызова содержат следующие метаданные запроса.
Имя свойства
Назначение
type
Тип запроса. Должно применяться значение invoke.
name
Тип команды, выпущенной для вашей службы. Должно применяться значение composeExtension/fetchTask.
from.id
Идентификатор пользователя, отправившего запрос.
from.name
Имя пользователя, отправившего запрос.
from.aadObjectId
Идентификатор объекта Microsoft Entra пользователя, отправляющего запрос.
channelData.tenant.id
Идентификатор клиента Microsoft Entra.
channelData.channel.id
Идентификатор канала (если запрос был выполнен в канале).
channelData.team.id
Идентификатор команды (если запрос был выполнен в канале).
value.commandId
Содержит идентификатор вызванной команды.
value.commandContext
Контекст, инициировавший событие. Должно применяться значение compose.
value.context.theme
Тема клиента пользователя. Удобно при форматировании внедренного веб-представления. Должно применяться значение default, contrast или dark.
Пример
Код запроса начального вызова приведен в следующем примере.
При вызове бота из сообщения value объект в исходном запросе на вызов должен содержать сведения о сообщении, из чего вызывается расширение сообщения. Массивы reactions и mentions являются необязательными. Они отсутствуют, если в исходном сообщении нет реакций или упоминаний.
В следующем разделе представлен пример объекта value.
Отвечайте на запрос вызова с использованием объекта task, который содержит либо объект taskInfo с адаптивной карточкой или URL-адресом веб-страницы, либо простое строковое сообщение.
Имя свойства
Назначение
type
Может быть как для представления формы, так continue и message для простого всплывающего окна.
value
Объект taskInfo для формы или string для сообщения.
Схема для объекта taskInfo:
Имя свойства
Назначение
title
Заголовок диалогового окна.
height
Должно быть целым числом (в пикселях) или иметь значение small, medium, large.
width
Должно быть целым числом (в пикселях) или иметь значение small, medium, large.
card
Адаптивная карточка, определяющая форму (если она используется).
url
URL-адрес, который открывается внутри диалогового окна в виде внедренного веб-представления.
fallbackUrl
Если клиент не поддерживает функцию диалогового окна, этот URL-адрес открывается на вкладке браузера.
Отклик на fetchTask с помощью адаптивной карточки
При использовании адаптивной карточки необходимо ответить task объектом, value содержащим адаптивную карточку.
Пример
В следующем разделе кода приведен пример fetchTask ответа с помощью адаптивной карточки:
Создание диалогового окна с внедренным веб-представлением
При использовании внедренного веб-представления необходимо ответить объектом task с объектом value, содержащим URL-адрес веб-формы, которую требуется загрузить. Домены любого URL-адреса, который нужно загрузить, требуется включить в массив validDomains манифеста приложения. Дополнительные сведения о создании внедренного веб-представления см. в документации по диалогу.
Если приложение содержит бота для общения, установите бот в беседе, а затем загрузите диалоговое окно. Бот полезен для получения дополнительного контекста для диалогового окна. Примером этого сценария является получение состава для заполнения элемента выбора людей или списка каналов в команде.
Когда расширение для сообщений получит вызов composeExtensions/fetchTask, проверьте, установлен ли бот в текущем контексте, чтобы упростить поток. Например, проверьте поток с помощью вызова получения состава. Если бот не установлен, верните адаптивную карточку с действием, которое запрашивает у пользователя установку бота. У пользователя должно быть разрешение на установку приложений в этом расположении для проверки. Если установка приложения завершается неудачно, пользователь получает сообщение, предлагающее ему связаться с администратором.
Пример
Следующий раздел кода является примером отклика.
JSON
{
"type": "AdaptiveCard",
"body": [
{
"type": "TextBlock",
"text": "Looks like you haven't used Disco in this team/chat"
}
],
"actions": [
{
"type": "Action.Submit",
"title": "Continue",
"data": {
"msteams": {
"justInTimeInstall": true
}
}
}
],
"version": "1.0"
}
После установки бота для бесед он получает еще одно сообщение вызова с name = composeExtensions/submitAction и value.data.msteams.justInTimeInstall = true.
Пример
Следующий раздел кода является примером отклика задачи на вызов.
В этом примере показано, как создать расширение сообщений на основе поиска. Он выполняет поиск пакетов nudget и отображает результаты в расширении обмена сообщениями на основе поиска.
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о Platform Docs
Platform Docs — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
Узнайте, как улучшить взаимодействие с декларативными агентами с помощью адаптивных карточек для визуального отображения данных API. Создавайте и настраивайте шаблоны адаптивных карточек, интегрируйте их в подключаемые модули API и протестируйте настройку в Microsoft 365 Copilot. Узнайте о практических шагах по созданию и просмотру адаптивных карточек в Visual Studio Code.
Узнайте, как определять команды действий расширения сообщений с помощью манифеста приложения в Teams. Пример (.NET, Node.js), create dialog (task module), ответ на действие отправки диалога.
Узнайте, как создавать и настраивать расширения сообщений на основе действий для Microsoft Teams с помощью пакета SDK Bot Framework, чтобы разрешить пользователям активировать внешние службы.
В этом модуле обучения вы узнаете, как настроить расширение сообщений действий для Teams, чтобы инициировать действия из области создания сообщения и сообщения.