Прямая ссылка на чат Teams

Вы можете создать прямую ссылку на чат Teams, например, чтобы начать новый чат, перейти в беседу на канале и получить доступ к файлу в канале.

В этой статье вы узнаете, как создать прямую ссылку:

Вы можете переходить к или создавать личные чаты между пользователями с помощью клиентской библиотеки JavaScript (TeamsJS) Microsoft Teams, указав набор участников. Если чат с указанными участниками не существует, пользователь будет перенаправлен в новый пустой чат.

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

В качестве примера использования, если вы извлеките данные профиля пользователя Microsoft 365 из бота в качестве карта, эта прямая ссылка может позволить пользователю приложения легко общаться с этим человеком.

Вы можете настроить глубокие ссылки для запуска нового чата одним из следующих двух способов:

Хотя рекомендуется использовать типизированные API, можно также использовать следующий формат для созданной вручную глубокой ссылки, которую можно использовать в боте, соединителе или расширении сообщений карта. Чтобы использовать эту прямую ссылку с ботом, укажите ее в качестве целевого URL-адреса на кнопке карточки или коснитесь действия через тип действия openUrl.

https://teams.microsoft.com/l/chat/0/0?tenantId=<tenantId>&users=<user1>,<user2>,...&topicName=<chat name>&message=<precanned text>

Параметры запроса:

  • users: разделенный запятыми список идентификаторов пользователей, представляющих участников чата. Пользователь, выполняющий действие, всегда включен в качестве участника. В настоящее время параметр User ID поддерживает Microsoft Entra UserPrincipalName, например только адрес электронной почты.
  • topicName: необязательный параметр для отображаемого имени чата, если в чате есть три или более пользователей. Если это поле не указано, отображаемое имя чата основывается на именах участников.
  • message: необязательное поле для текста сообщения, которое вы хотите вставить в поле создания текущего пользователя приложения, пока чат находится в состоянии черновика.

Пример: 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

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

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, используйте следующий формат глубокой ссылки:

https://teams.microsoft.com/l/chat/<chatId>/conversations

Параметр запроса — chatId, который представляет идентификатор чата беседы. Поддерживаемый формат для chatId — 19:xxx.

Пример: https://teams.microsoft.com/l/chat/19:c6d70e392a384916c3262b15406d763e@thread.v2/conversations

Для перехода к определенной беседе в потоке канала можно использовать следующий формат глубокой ссылки:

https://teams.microsoft.com/l/message/<channelId>/<parentMessageId>?tenantId=<tenantId>&groupId=<groupId>&parentMessageId=<parentMessageId>&teamName=<teamName>&channelName=<channelName>&createdTime=<createdTime>

Параметры запроса:

  • channelId: идентификатор канала беседы. Например, 19:3997a8734ee5432bb9cdedb7c432ae7d@thread.tacv2.
  • tenantId: идентификатор клиента, например 0d9b645f-597b-41f0-a2a3-ef103fbd91bb.
  • groupId: идентификатор группы файла. Например, 3606f714-ec2e-41b3-9ad1-6afb331bd35d.
  • parentMessageId: идентификатор родительского сообщения в беседе.
  • teamName: имя команды.
  • channelName: название канала команды.

Примечание.

Вы можете увидеть channelId и groupId в URL-адресе канала.

Пример: https://teams.microsoft.com/l/message/<channelId>/1648741500652?tenantId=<tenantId>&groupId=<groupId>&parentMessageId=1648741500652&teamName=<teamName>&channelName=<channelName>&createdTime=1648741500652

Используйте следующий формат глубокой ссылки для перехода пользователя к сообщению в личном или групповом чате в Teams:

https://teams.microsoft.com/l/message/{chatId}/{messageId}?tenantId=<tenantId>?context={"contextType":"chat"}

Пример: https://teams.microsoft.com/l/message/19:253f5895-9a62-4362-8d38-43f0205c702c_f1b94dcf-0aa3-4989-bcdf-ef4a5ed00f86@unq.gbl.spaces/1563480968434?context=%7B%22contextType%22:%22chat%22%7D

Параметры запроса:

  • chatId: идентификатор чата беседы. Поддерживаемый формат — chatId 19: xxx. Например, 19:253f5895-9a62-4362-8d38-43f0205c702c_f1b94dcf-0aa3-4989-bcdf-ef4a5ed00f86@unq.gbl.spaces.
    Приложения могут считывать идентификатор чата через контекст приложения в Teams, входящие полезные данные боту или через API Microsoft Graph.

    Примечание.

    Для общения с ботом в входящие полезные данные для бота содержат идентификатор беседы в формате a:xxx.

  • messageId: уникальный идентификатор каждого сообщения в чате. Когда бот публикует сообщение в чате messageId , возвращается . Вы также можете получить через messageIdAPI Microsoft Graph. Например, 1563480968434.
  • context: укажите contextType в качестве чата.

Пример: http://teams.microsoft.com/l/message/19:253f5895-9a62-4362-8d38-43f0205c702c_f1b94dcf-0aa3-4989-bcdf-ef4a5ed00f86@unq.gbl.spaces/1563480968434?context=%7B%22contextType%22:%22chat%22%7D

В боте, соединителе или расширении сообщений карта для настройки глубокой ссылки для подключения к файлу в канале можно использовать следующий формат глубокой ссылки:

https://teams.microsoft.com/l/file/<fileId>?tenantId=<tenantId>&fileType=<fileType>&objectURL=<objectURL>&baseUrl=<baseURL>&serviceName=<Name>&threadId=<threadId>&groupId=<groupId>

Параметры запроса:

  • fileId: Идентификатор уникального документа Sharepoint Online, также известный как sourcedoc. Например, 1FA202A5-3762-4F10-B550-C04F81F6ACBD.
  • tenantId: идентификатор клиента, например 0d9b645f-597b-41f0-a2a3-ef103fbd91bb.
  • fileType: поддерживаемый тип файла, например DOCX, PPTX, XLSX и PDF.
  • objectUrl: URL-адрес объекта файла. Представлено в формате https://{tenantName}.sharepoint.com/sites/{TeamName}/SharedDocuments/{ChannelName}/FileName.ext. Например, https://microsoft.sharepoint.com/teams/(filepath).
  • baseUrl: базовый URL-адрес файла. Представлено в формате https://{tenantName}.sharepoint.com/sites/{TeamName}. Например, https://microsoft.sharepoint.com/teams.
  • serviceName: имя службы, идентификатор приложения Например, teams.
  • threadId: threadID — это идентификатор команды, в которой хранится файл. Это необязательно и не может быть установлено для файлов, хранящихся в пользовательской папке OneDrive. threadId — 19:f8fbfc4d89e24ef5b3b8692538cebeb7@thread.skype.
  • groupId: идентификатор группы файла. Например, ae063b79-5315-4ddb-ba70-27328ba6c31e.

Примечание.

Вы можете увидеть threadId и groupId в URL-адресе канала.

Следующий пример формата иллюстрирует глубокую ссылку на файлы:

https://teams.microsoft.com/l/file/5E0154FC-F2B4-4DA5-8CDA-F096E72C0A80?tenantId=0d9b645f-597b-41f0-a2a3-ef103fbd91bb&fileType=pptx&objectUrl=https%3A%2F%2Fmicrosoft.sharepoint.com%2Fteams%2FActionPlatform%2FShared%20Documents%2FFC7-%20Bot%20and%20Action%20Infra%2FKaizala%20Actions%20in%20Adaptive%20Cards%20-%20Deck.pptx&baseUrl=https%3A%2F%2Fmicrosoft.sharepoint.com%2Fteams%2FActionPlatform&serviceName=teams&threadId=19:f8fbfc4d89e24ef5b3b8692538cebeb7@thread.skype&groupId=ae063b79-5315-4ddb-ba70-27328ba6c31e

Сериализация этого объекта

{
fileId: "5E0154FC-F2B4-4DA5-8CDA-F096E72C0A80",
tenantId: "0d9b645f-597b-41f0-a2a3-ef103fbd91bb",
filetype: = "pptx",
objectUrl: "https://microsoft.sharepoint.com/teams/ActionPlatform/Shared Documents/FC7- Bot and Action Infra/Kaizala Actions in Adaptive Cards - Deck.pptx",
baseUrl: "https://microsoft.sharepoint.com/teams/ActionPlatform",
serviceName: "teams",
threadId: = "19:f8fbfc4d89e24ef5b3b8692538cebeb7@thread.skype",
groupId: "ae063b79-5315-4ddb-ba70-27328ba6c31e"
}

Пример кода

Название примера Описание .NET Node.js
Прямая ссылка, используюющая идентификатор subentity В этом примере показано, как использовать прямую ссылку из чата бота на вкладку с использованием идентификатора subentity. Здесь также отображаются прямые ссылки для перехода к приложению, перехода в чат, открытия диалогового окна профиля и открытия диалогового окна планирования. Просмотр Просмотр