Прямая ссылка на рабочий процесс в Teams
Вы можете создать прямую ссылку для выполнения определенной задачи в Teams, например создать новый чат, открыть диалоговое окно планирования и перейти к аудио-видеозвонку.
В этой статье вы узнаете, как создать прямую ссылку:
- Запуск нового чата
- Открытие диалогового окна планирования собраний
- Запуск аудио-видеозвонка
- Предоставление общего доступа к содержимому в собраниях
- На боковую панель собрания
- Присоединение к собранию
Прямая ссылка для начала нового чата
Приложения могут запускать новый чат со списком пользователей и предоставлять дополнительные сведения, такие как имя чата и черновик сообщения, в следующем формате:
https://teams.microsoft.com/l/chat/0/0?users=<user1>,<user2>,...&topicName=<chat name>&message=<precanned text>
Пример: https://teams.microsoft.com/l/chat/0/0?users=joe@contoso.com,bob@contoso.com&topicName=Prep%20For%20Meeting%20Tomorrow&message=Hi%20folks%2C%20kicking%20off%20a%20chat%20about%20our%20meeting%20tomorrow
Параметры запроса:
-
users
: разделенный запятыми список идентификаторов пользователей, представляющих участников чата. Пользователь, выполняющий действие, всегда включен в качестве участника. Поле идентификатора пользователя поддерживает Microsoft Entra UserPrincipalName, например только адрес электронной почты. -
topicName
: необязательное поле для отображаемого имени чата, если в чате есть три или более пользователей. Если это поле не указано, отображаемое имя чата основывается на именах участников. -
message
: необязательное поле для текста сообщения, которое необходимо вставить в поле создания текущего пользователя, когда чат находится в состоянии черновика.
Чтобы использовать эту прямую ссылку с ботом, укажите прямую ссылку в качестве целевого URL-адреса в кнопке карта или коснитесь действия с помощью openUrl
типа действия. Приложения также могут использовать клиентскую библиотеку Teams JavaScript (TeamsJS) версии 2.0 или более поздней версии, чтобы создать эту библиотеку без необходимости вручную подготавливать прямую ссылку. В следующем примере teamsJS используется для проверка, если поддерживается возможность чата:
if(chat.isSupported()) {
const chatPromise = chat.openGroupChat({ users: ["joe@contoso.com","bob@contoso.com"], topic: "Prep For Meeting Tomorrow", message: "Hi folks kicking off chat about our meeting tomorrow"});
chatPromise.
then((result) => {/*Successful operation*/}).
catch((error) => {/*Unsuccessful operation*/});
}
else { /* handle case where capability isn't supported */ }
Примечание.
Если чат уже существует, в этом чате открывается прямая ссылка.
Прямая ссылка для открытия диалогового окна планирования собрания
Вы можете создать прямую ссылку в приложениях Teams, чтобы открыть диалоговое окно планирования собраний и предоставить такие сведения, как название собрания и участники, с помощью следующих методов:
- Настройка прямой связи вручную для открытия диалогового окна планирования собраний
- Настройка прямой связи с помощью библиотеки TeamsJS для открытия диалогового окна планирования собраний
Хотя мы рекомендуем использовать типизированные API TeamsJS, можно вручную создать глубокие ссылки на встроенное диалоговое окно планирования Teams.
Настройка прямой связи вручную для открытия диалогового окна планирования собраний
Используйте следующий формат для настройки глубокой ссылки, которую можно использовать в боте, соединителе или расширении сообщений карта:
https://teams.microsoft.com/l/meeting/new?subject=<meeting subject>&startTime=<date>&endTime=<date>&content=<content>&attendees=<user1>,<user2>,<user3>,...
Примечание.
Параметры поиска не поддерживают сигнал +
вместо пробела (``). Убедитесь, что код кодировки URI возвращается %20
для пробелов. Например, хорошо, ?subject=test%20subject
но ?subject=test+subject
плохо.
Параметры запроса:
-
attendees
: необязательный список идентификаторов пользователей, разделенных запятыми, представляющих участников собрания. Пользователь, выполняющий действие, является организатором собрания. Поле идентификатора пользователя поддерживает только Microsoft EntraUserPrincipalName
, обычно это адрес электронной почты. -
startTime
: необязательный параметр для времени начала события. Время начала должно быть в формате ISO 8601, например 2018-03-12T23:55:25+02:00. -
endTime
: необязательный параметр для времени окончания события, также в формате ISO 8601. -
subject
: необязательный параметр для темы собрания. -
content
: необязательный параметр для поля сведений о собрании.
Примечание.
Невозможно указать расположение, так как оно не поддерживается. При создании времени начала и окончания необходимо указать смещение в формате UTC, включая часовые пояса.
Чтобы использовать эту прямую ссылку с ботом, можно указать прямую ссылку в качестве целевого URL-адреса в кнопке карта или в качестве действия касания с помощью openUrl
типа действия.
Пример: https://teams.microsoft.com/l/meeting/new?subject=test%20subject&attendees=joe@contoso.com,bob@contoso.com&startTime=10%2F24%2F2018%2010%3A30%3A00&endTime=10%2F24%2F2018%2010%3A30%3A00&content=test%3Acontent
Настройка прямой связи с помощью библиотеки TeamsJS для открытия диалогового окна планирования собраний
Вы также можете использовать TeamsJS версии 2.0 или более поздней версии в приложении Teams, чтобы открыть диалоговое окно планирования собрания без необходимости вручную подготавливать ссылку. Чтобы открыть диалоговое окно планирования в Teams, необходимо продолжать использовать исходный метод на основе URL-адреса прямой ссылки, так как Teams еще не поддерживает возможность календаря:
// Open a scheduling dialog from your tab
if(calendar.isSupported()) {
const calendarPromise = calendar.composeMeeting({
attendees: ["joe@contoso.com", "bob@contoso.com"],
content: "test content",
endTime: "2018-10-24T10:30:00-07:00",
startTime: "2018-10-24T10:00:00-07:00",
subject: "test subject"});
calendarPromise.
then((result) => {/*Successful operation*/}).
catch((error) => {/*Unsuccessful operation*/});
}
else { /* handle case where capability isn't supported */ }
Дополнительные сведения о работе с календарем см. в пространстве имен календаря в справочной документации по API.
Прямая ссылка для запуска аудио-видеозвонка с пользователями
Вы можете настроить приложения Teams, чтобы подготовить прямую ссылку для пользователей, чтобы начать единый звонок, групповой звонок или видеозвонок. Вы можете вызывать только звуковые или аудио-видеозвонки для одного пользователя или группы пользователей, указав тип вызова и участников. Перед выполнением вызова Teams клиент запрашивает подтверждение. Если есть групповой вызов, вы можете вызвать набор пользователей VoIP и ТСОП в одном вызове глубокой ссылки.
В видеовызове клиент Teams запрашивает подтверждение перед включением видео звонящего для вызова. Получатель звонка может ответить только через голосовой вызов или голосовой и видеовызов через окно уведомления о звонках Teams.
Примечание.
Этот метод нельзя использовать для вызова собрания.
Вы можете настроить глубокие ссылки одним из следующих двух способов:
- Настройка прямой связи вручную для запуска аудио-видеозвонка с пользователями
- Настройка прямой связи с помощью библиотеки TeamsJS для запуска аудио-видеозвонка с пользователями
Настройка прямой связи вручную для запуска аудио-видеозвонка с пользователями
Хотя рекомендуется использовать типизированные API TeamsJS версии 2.0 или более поздней версии, вы также можете использовать настроенную вручную прямую ссылку для запуска вызова. См. следующие форматы:
Прямая ссылка | Формат | Пример |
---|---|---|
Совершение голосовых звонков | https://teams.microsoft.com/l/call/0/0?users=<user1>,<user2> |
https://teams.microsoft.com/l/call/0/0?users=joe@contoso.com |
Совершение голосовых и видеозвонков | https://teams.microsoft.com/l/call/0/0?users=<user1>,<user2>&withVideo=true |
https://teams.microsoft.com/l/call/0/0?users=joe@contoso.com&withVideo=true |
Совершение голосовых и видеозвонков с дополнительным источником параметров | https://teams.microsoft.com/l/call/0/0?users=<user1>,<user2>&withVideo=true&source=demoApp |
https://teams.microsoft.com/l/call/0/0?users=joe@contoso.com&withVideo=true&source=demoApp |
Совершение голосовых и видеозвонков пользователям для пользователей протокола VoIP и ТСОП | https://teams.microsoft.com/l/call/0/0?users=<user1>,4:<phonenumber> |
https://teams.microsoft.com/l/call/0/0?users=joe@contoso.com,4:9876543210 |
Ниже приведены параметры запроса:
-
users
: разделенный запятыми список идентификаторов пользователей, представляющих участников вызова. Поле идентификатора пользователя поддерживает Microsoft EntraUserPrincipalName
, обычно адрес электронной почты, или в вызове по ТСОП поддерживает ТСОП MRI 4:<phonenumber>. -
withVideo
: необязательный параметр, который можно использовать для выполнения видеозвонка. Установка этого параметра включает только камеру вызывающего объекта. Получатель звонка может ответить с помощью звука или аудио- и видеозвонка через окно уведомлений о вызове Teams.
Настройка прямой связи с помощью библиотеки TeamsJS для запуска аудио-видеозвонка с пользователями
Приложения также могут использовать TeamsJS версии 2.0 или более поздней версии для запуска вызовов без необходимости вручную подготавливать эти глубокие ссылки. В следующем коде показано использование TeamsJS для запуска вызова:
if(call.isSupported()) {
const callPromise = call.startCall({ targets: ["joe@contoso.com","bob@contoso.com","4:9876543210"], requestedModalities: [call.CallModalities.Audio], source: "demoApp"});
callPromise.
then((result) => {/*Successful operation*/}).
catch((error) => {/*Unsuccessful operation*/});
}
else { /* handle case where capability isn't supported */ }
Прямая ссылка для предоставления общего доступа к содержимому для этапа собраний
Чтобы добавить прямую ссылку для предоставления общего доступа к содержимому на сцене, необходимо иметь контекст приложения. Контекст приложения позволяет клиенту Teams получить манифест приложения и проверка, если общий доступ на этапе возможен. Ниже приведен пример контекста приложения.
{ "appSharingUrl" : "https://teams.microsoft.com/extensibility-apps/meetingapis/view", "appId": "9ec80a73-1d41-4bcb-8190-4b9eA9e29fbb" , "useMeetNow": false }
Параметры запроса для контекста приложения:
-
appID
: это идентификатор, который можно получить из манифеста приложения. -
appSharingUrl
: URL-адрес, к которому необходимо предоставить общий доступ на этапе, должен быть допустимым доменом, определенным в манифесте приложения. Если URL-адрес не является допустимым доменом, появится диалоговое окно с ошибкой, чтобы предоставить пользователю описание ошибки. -
useMeetNow
: включает логический параметр, который может иметь значение true или false.True: если
useMeetNow
значение равно true и если текущее собрание отсутствует, будет инициировано новое собрание Meet now. При текущем собрании это значение будет игнорироваться.False: значение по умолчанию равно false. Это означает, что при совместном использовании прямой ссылки на этап и отсутствии текущего
useMeetNow
собрания появится всплывающее окно календаря. Однако вы можете предоставить общий доступ непосредственно во время собрания.
Убедитесь, что все параметры запроса правильно закодированы URI, а контекст приложения должен быть закодирован дважды в конечном URL-адресе. Ниже приведен пример:
const appContext= JSON.stringify({
"appSharingUrl" : "https://teams.microsoft.com/extensibility-apps/meetingapis/view",
"appId": "9cc80a93-1d41-4bcb-8170-4b9ec9e29fbb",
"useMeetNow": false
});
const encodedContext = encodeURIComponent(appContext).replace(/'/g,"%27").replace(/"/g,"%22");
const encodedAppContext = encodeURIComponent(encodedContext).replace(/'/g,"%27").replace(/"/g,"%22");
Прямую ссылку можно запустить либо из веб-сайта Teams, либо из классического или мобильного клиента Teams.
Используйте следующий формат, чтобы запустить прямую ссылку из Интернета Teams для предоставления общего доступа к содержимому на сцене:
msteams:/l/meeting-share?deeplinkId={GUID}&fqdn={string}&lm=deeplink&appContext={json encoded app context}
Пример: https://teams.microsoft.com/l/meeting-share?deeplinkId={sampleid}&fqdn=teams.microsoft.com&lm=deeplink%22&appContext=%257B%2522appSharingUrl%2522%253A%2522https%253A%252F%252Fteams.microsoft.com%252Fextensibility-apps%252Fmeetingapis%252Fview%2522%252C%2522appId%2522%253A%25229cc80a93-1d41-4bcb-8170-4b9ec9e29fbb%2522%252C%2522useMeetNow%2522%253Atrue%257D
Прямая ссылка | Формат | Пример |
---|---|---|
Чтобы предоставить общий доступ к приложению и открыть календарь Teams, если useMeeetNow имеет значение false, по умолчанию. |
https://teams.microsoft.com/l/meeting-share?deeplinkId={deeplinkid}&fqdn={fqdn}}&lm=deeplink%22&appContext={encoded app context} |
https://teams.microsoft.com/l/meeting-share?deeplinkId={sampleid}&fqdn=teams.microsoft.com&lm=deeplink%22&appContext=%257B%2522appSharingUrl%2522%253A%2522https%253A%252F%252Fteams.microsoft.com%252Fextensibility-apps%252Fmeetingapis%252Fview%2522%252C%2522appId%2522%253A%25229cc80a93-1d41-4bcb-8170-4b9ec9e29fbb%2522%252C%2522useMeetNow%2522%253Afalse%257D |
Чтобы предоставить общий доступ к приложению и инициировать мгновенное собрание, когда useMeeetNow имеет значение true. |
https://teams.microsoft.com/l/meeting-share?deeplinkId={deeplinkid}&fqdn={fqdn}}&lm=deeplink%22&appContext={encoded app context} |
https://teams.microsoft.com/l/meeting-share?deeplinkId={sampleid}&fqdn=teams.microsoft.com&lm=deeplink%22&appContext=%257B%2522appSharingUrl%2522%253A%2522https%253A%252F%252Fteams.microsoft.com%252Fextensibility-apps%252Fmeetingapis%252Fview%2522%252C%2522appId%2522%253A%25229cc80a93-1d41-4bcb-8170-4b9ec9e29fbb%2522%252C%2522useMeetNow%2522%253Atrue%257D |
Параметры запроса:
-
deepLinkId
: любой идентификатор, используемый для корреляции телеметрии. -
fqdn
:fqdn
необязательный параметр, который можно использовать для переключения в соответствующую среду собрания для предоставления общего доступа к приложению на сцене. Он поддерживает сценарии, в которых определенный общий ресурс приложения происходит в определенной среде. Значение по умолчанию — корпоративныйfqdn
URL-адрес, а возможные значения —Teams.live.com
для Teams для жизни,teams.microsoft.com
илиteams.microsoft.us
.
Примечание.
Чтобы приложение прошло проверку, при создании глубокой ссылки с веб-сайта, веб-приложения или адаптивной карточки используйте в качестве строки или копии общий доступ к собранию .
Вы можете создать прямую ссылку для предоставления общего доступа к приложению для этапа и начала собрания или присоединения к нему.
Прямая ссылка на боковую панель собрания
Вы можете создать прямую ссылку на боковую панель собрания в собрании. Используйте следующий формат для прямой ссылки на боковую панель собрания:
https://teams.microsoft.com/l/entity/<appId>/<entityId>?webUrl=<entityWebUrl>&label=<entityLabel>&context=<context>
.
Пример:
https://teams.microsoft.com/l/entity/fe4a8eba-2a31-4737-8e33-e5fae6fee194/tasklist123?webUrl=https://tasklist.example.com/123/456&label=Task 456&context={"chatId": "17:b42de192376346a7906a7dd5cb84b673@thread.v2","contextType":"chat"}
По умолчанию прямая ссылка открывается на боковой панели собрания. Чтобы открыть прямую ссылку непосредственно в приложении, а не на боковой панели собрания, добавьте openInMeeting=false
в формате прямой ссылки:
https://teams.microsoft.com/l/entity/<appId>/<entityId>?webUrl=<entityWebUrl>&label=<entityLabel>&context=<context>&openInMeeting=false
Дополнительные сведения см. в разделе Прямая ссылка на вкладку.
Прямая ссылка не открывается на боковой панели собрания в следующих сценариях:
- Активное собрание отсутствует.
- В манифесте приложения нет
sidePanel
объявленного контекста. -
openInMeeting
в прямой ссылке задано значениеfalse
. - Прямая ссылка выбирается за пределами окна собрания или компонента.
- Прямая ссылка не соответствует текущему собранию, например прямая ссылка, созданная в другом собрании.
Прямая ссылка для присоединения к собранию
Приложение Teams может считывать URL-адрес для присоединения к URL-адресу собрания с помощью API Graph. Эта прямая ссылка открывает пользовательский интерфейс для присоединения пользователя к собранию. Дополнительные сведения см. в разделе Получение onlineMeeting
и получение сведений о собрании.
Пример кода
Название примера | Описание | .NET | Node.js |
---|---|---|---|
Прямая ссылка, используюющая идентификатор subentity | В этом примере показано, как использовать прямую ссылку из чата бота на вкладку, используюющую идентификатор subentity. Здесь также показаны подробные ссылки для: — Переход к приложению — Переход к чату — Открытие диалогового окна профиля — Открытие диалогового окна планирования |
Просмотр | Просмотр |
Platform Docs