Поделиться через


Создание вкладок бесед

Подтенанты беседы позволяют пользователям проводить беседы о подотносьях на вкладке. Например, конкретная задача, пациент и возможность продажи, вместо обсуждения всей вкладки, также известной как сущность. Традиционный канал или настраиваемая вкладка позволяет пользователю беседовать о вкладке, но пользователю требуется более целенаправленная беседа. Требование к более предметной беседе может возникнуть либо при наличии слишком большого количества содержимого для централизованного обсуждения, либо из-за того, что содержимое изменилось с течением времени, что делает беседу неактуальной для отображаемого содержимого. Подотносья беседы обеспечивают гораздо более целенаправленный диалог для динамических вкладок.

Диалоговые подтенанты поддерживаются только в каналах. Их можно использовать с личной или статической вкладки для создания или продолжения бесед на вкладках, уже закрепленных в канале. Статическая вкладка полезна, если требуется предоставить пользователю одно расположение для просмотра бесед и доступа к беседам, происходящим по нескольким каналам.

Предварительные условия

Для поддержки диалоговых вложенных сущностей веб-приложение табуляции должно иметь возможность хранить сопоставление диалогов подотест в ↔ серверной базе данных. Предоставляется 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:[email protected]”, “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 для демонстрации вкладки создания беседы. Просмотр Просмотр Просмотр

См. также