Создание вкладок бесед
Подтенанты беседы позволяют пользователям проводить беседы о подотносьях на вкладке. Например, конкретная задача, пациент и возможность продажи, вместо обсуждения всей вкладки, также известной как сущность. Традиционный канал или настраиваемая вкладка позволяет пользователю беседовать о вкладке, но пользователю требуется более целенаправленная беседа. Требование к более предметной беседе может возникнуть либо при наличии слишком большого количества содержимого для централизованного обсуждения, либо из-за того, что содержимое изменилось с течением времени, что делает беседу неактуальной для отображаемого содержимого. Подотносья беседы обеспечивают гораздо более целенаправленный диалог для динамических вкладок.
Диалоговые подтенанты поддерживаются только в каналах. Их можно использовать с личной или статической вкладки для создания или продолжения бесед на вкладках, уже закрепленных в канале. Статическая вкладка полезна, если требуется предоставить пользователю одно расположение для просмотра бесед и доступа к беседам, происходящим по нескольким каналам.
Предварительные условия
Для поддержки диалоговых вложенных сущностей веб-приложение табуляции должно иметь возможность хранить сопоставление диалогов подотест в ↔ серверной базе данных. Предоставляется conversationId
, но необходимо сохранить его conversationId
и вернуть в Teams, чтобы пользователи продолжили беседу.
Начало новой беседы
Чтобы начать новую беседу, используйте функцию openConversation()
. Запуск и продолжение беседы обрабатываются этим методом. Входные данные функции изменяются в зависимости от того, какое действие вы хотите выполнить, с точки зрения пользователя, откроется панель беседы справа от экрана, чтобы начать беседу или продолжить беседу.
microsoftTeams.conversations.openConversation(openConversationRequest);
OpenConversation принимает следующие входные данные, чтобы начать беседу в канале:
- subEntityId: идентификатор конкретной подчиненности. Например, задача 123.
- entityId: идентификатор экземпляра вкладки при его создании. Идентификатор важно ссылаться на тот же экземпляр вкладки.
-
channelId: канал, в котором находится экземпляр вкладки.
Примечание.
ChannelId является необязательным для вкладок канала. Однако рекомендуется, если вы хотите сохранить реализацию в разных каналах и на статических вкладках одинаково.
- title: заголовок, отображаемый пользователю на панели чата.
Большинство из этих значений также можно получить из app.getContext()
API (microsoftTeams.getContext()
в TeamsJS версии 1). Дополнительные сведения см. в статье Интерфейс PageInfo.
microsoftTeams.conversations.openConversation({“subEntityId”:”task-1”, “entityId”: “tabInstanceId-1”, “channelId”: ”19:baa6e71f65b948d189bf5c892baa8e5a@thread.skype”, “title”: "Task Title”});
На следующем рисунке показана панель беседы:
Если пользователь начинает беседу, важно прослушать обратный вызов этого события, чтобы получить и сохранить conversationId:
microsoftTeams.conversations.openConversation({
...,
onStartConversation: (conversationResponse) => {
// console.log(conversationResponse)
},
});
Объект conversationResponse
содержит сведения, связанные с начатым диалогом. Рекомендуется сохранить все свойства этого объекта ответа для последующего использования.
Продолжение беседы
После начала беседы последующие вызовы требуют, чтобы openConversation()
вы также предоставляли те же входные данные, что и при запуске новой беседы, но также включали conversationId. Откроется панель беседы для пользователей с соответствующим диалогом в представлении. Пользователи могут просматривать новые или входящие сообщения в режиме реального времени.
На следующем рисунке показана панель беседы с соответствующим диалогом:
Улучшение беседы
Важно, чтобы вкладка содержит глубокие ссылки на вашу подчиненность. Например, пользователь выбирает вкладку chiclet deep link из беседы канала. Ожидаемое поведение заключается в получении глубокой ссылки, открытии этой подчиненности, а затем открытии панели беседы для этой подчиненности.
Для поддержки подчиненных диалогов из личной или статической вкладки вам не нужно ничего изменять в реализации. Мы поддерживаем только начало или продолжение бесед из уже закрепленных вкладок каналов. Поддержка статических вкладок позволяет предоставить пользователям единое расположение для взаимодействия со всеми подсутями. Важно сохранить subEntityId
, entityId
и channelId
при первоначальном создании вкладки в канале, чтобы иметь правильные свойства при открытии представления беседы на статической вкладке.
Закрытие беседы
Вы можете вручную закрыть представление беседы, вызвав функцию closeConversation()
.
microsoftTeams.conversations.closeConversation();
Вы также можете слушать событие, когда пользователи выбирают Закрыть (X) в представлении беседы.
microsoftTeams.conversations.openConversation({
...,
onCloseConversation: (conversationResponse) => {
// console.log(conversationResponse)
},
});
Пример кода
Название примера | Описание | .NET | Node.js | Манифест |
---|---|---|---|---|
Вкладка "Создание беседы" | Пример приложения для вкладки Microsoft Teams для демонстрации вкладки создания беседы. | Просмотр | Просмотр | Просмотр |
См. также
Platform Docs