Lien profond vers un flux de travail dans Teams

Vous pouvez créer un lien profond pour effectuer une tâche spécifique dans Teams, par exemple pour créer une conversation, ouvrir une boîte de dialogue de planification et accéder à l’appel audio-vidéo.

Dans cet article, vous allez apprendre à créer un lien profond :

Les applications peuvent démarrer une nouvelle conversation avec une liste d’utilisateurs et fournir des informations supplémentaires telles que le nom de la conversation et le brouillon de message en utilisant le format suivant :

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

Exemple : 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

Les paramètres de requête sont les suivants :

  • users : liste séparée par des virgules des ID d’utilisateur représentant les participants de la conversation. L’utilisateur qui effectue l’action est toujours inclus en tant que participant. Actuellement, le champ User ID prend en charge le Microsoft Entra UserPrincipalName, par exemple une adresse e-mail uniquement.
  • topicName: champ facultatif pour le nom d’affichage de la conversation si une conversation a au moins trois utilisateurs. Si ce champ n’est pas spécifié, le nom complet de la conversation est basé sur les noms des participants.
  • message : champ facultatif pour le texte du message que vous souhaitez insérer dans la zone de composition de l’utilisateur actuel lorsque la conversation est dans un état brouillon.

Pour utiliser ce lien profond avec votre bot, spécifiez le lien profond comme cible d’URL dans le bouton de votre carte ou appuyez sur action via le openUrl type d’action. Les applications peuvent également utiliser la bibliothèque de client JavaScript Teams (TeamsJS) v.2.0 ou ultérieure pour créer ce fichier sans avoir à préparer manuellement le lien profond. L’exemple suivant utilise TeamsJS pour case activée si la fonctionnalité de conversation est prise en charge :

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 */ }

Remarque

Si une conversation existe déjà, un lien profond s’ouvre dans cette conversation.

Vous pouvez créer un lien profond dans vos applications Teams pour ouvrir une boîte de dialogue de planification de réunion et fournir des informations, telles que le titre de la réunion et les participants à l’aide des méthodes suivantes :

Bien que nous vous recommandons d’utiliser des API typées de TeamsJS, il est possible de créer manuellement des liens profonds vers la boîte de dialogue de planification intégrée teams.

Utilisez le format suivant pour configurer un lien profond que vous pouvez utiliser dans un bot, un connecteur ou une extension de message carte :

https://teams.microsoft.com/l/meeting/new?subject=<meeting subject>&startTime=<date>&endTime=<date>&content=<content>&attendees=<user1>,<user2>,<user3>,...

Remarque

Les paramètres de recherche ne prennent pas en charge+ le signal à la place de l’espace blanc (``). Vérifiez que le code d’encodage de votre URI retourne %20 pour les espaces. Par exemple, ?subject=test%20subject est bon, mais ?subject=test+subject est mauvais.

Les paramètres de requête sont les suivants :

  • attendees: liste facultative d’ID utilisateur séparés par des virgules représentant les participants à la réunion. L’utilisateur qui effectue l’action est l’organisateur de la réunion. Le champ ID utilisateur prend uniquement en charge le Microsoft Entra UserPrincipalName, généralement une adresse e-mail.
  • startTime: paramètre facultatif pour l’heure de début de l’événement. L’heure de début doit être au format ISO 8601 long, par exemple 2018-03-12T23 :55 :25+02 :00.
  • endTime: paramètre facultatif pour l’heure de fin de l’événement, également au format ISO 8601.
  • subject: paramètre facultatif pour le sujet de la réunion.
  • content: paramètre facultatif pour le champ détails de la réunion.

Remarque

Vous ne pouvez pas spécifier l’emplacement, car il n’est pas pris en charge. Vous devez spécifier le décalage UTC, qui inclut les fuseaux horaires, lors de la génération des heures de début et de fin.

Pour utiliser ce lien profond avec votre bot, vous pouvez spécifier le lien profond en tant que cible d’URL dans le bouton de votre carte ou en tant qu’action d’appui via le openUrl type d’action.

Exemple : 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​​​​​​​​​​​​​​

Vous pouvez également utiliser TeamsJS v.2.0 ou version ultérieure dans votre application Teams pour ouvrir la boîte de dialogue de planification des réunions sans avoir à préparer manuellement le lien. Pour ouvrir la boîte de dialogue de planification dans Teams, vous devez continuer à utiliser la méthode basée sur l’URL de lien profond d’origine, car Teams ne prend pas encore en charge la fonctionnalité de calendrier :

// 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 */ }

Pour plus d'informations sur l'utilisation du calendrier, voir l'espace de noms du calendrier dans la documentation de référence de l'API.

Vous pouvez configurer vos applications Teams pour préparer un lien profond permettant aux utilisateurs de démarrer un appel en personne, un appel de groupe ou un appel vidéo. Vous pouvez appeler des appels audio uniquement ou audio-vidéo à un seul utilisateur ou à un groupe d’utilisateurs en spécifiant le type d’appel et les participants. Avant que Teams passe l’appel, le client demande une confirmation. En cas d’appel de groupe, vous pouvez appeler un ensemble d’utilisateurs VoIP et RTC dans le même appel de lien profond.

Dans un appel vidéo, le client Teams demande une confirmation avant d’activer la vidéo de l’appelant pour l’appel. Le destinataire de l’appel a le choix entre répondre par audio uniquement ou audio et vidéo, via la fenêtre de notification d’appel Teams.

Remarque

Cette méthode ne peut pas être utilisée pour appeler une réunion.

Vous pouvez configurer des liens profonds de l’une des deux manières suivantes :

Bien que nous vous recommandons d’utiliser les API typées de TeamsJS v.2.0 ou version ultérieure, vous pouvez également utiliser un lien profond configuré manuellement pour démarrer un appel. Reportez-vous aux formats suivants :

Lien profond Format Exemple
Passer un appel audio https://teams.microsoft.com/l/call/0/0?users=<user1>,<user2> https://teams.microsoft.com/l/call/0/0?users=joe@contoso.com
Effectuer des appels audio et vidéo 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
Passer un appel audio et vidéo avec une source de paramètre facultative 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
Effectuer un appel audio et vidéo à une combinaison d’utilisateurs VoIP et RTC 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

Voici les paramètres de requête :

  • users: liste d’ID utilisateur séparés par des virgules représentant les participants à l’appel. Le champ ID utilisateur prend en charge l’Microsoft Entra UserPrincipalName, généralement une adresse e-mail, ou dans un appel RTC, il prend en charge un MRI RTC 4 :<phonenumber>.
  • withVideo: paramètre facultatif, que vous pouvez utiliser pour passer un appel vidéo. La définition de ce paramètre active uniquement la caméra de l’appelant. Le destinataire de l’appel a le choix de répondre par le biais d’un appel audio ou audio et vidéo via la fenêtre de notification d’appel Teams.

Les applications peuvent également utiliser TeamsJS v.2.0 ou version ultérieure pour démarrer des appels sans avoir à préparer manuellement ces liens profonds. Le code suivant illustre l’utilisation de TeamsJS pour démarrer un appel :

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 */ }

Vous pouvez générer un lien profond pour partager l’application à l’étape et pour démarrer ou rejoindre une réunion.

Pour obtenir des liens approfondis permettant de partager du contenu à la phase, consultez lien profond pour partager du contenu à la phase dans les réunions.

Vous pouvez générer un lien profond vers le panneau latéral de la réunion dans une réunion. Utilisez le format suivant pour obtenir un lien profond vers le panneau latéral de la réunion :

https://teams.microsoft.com/l/entity/<appId>/<entityId>?webUrl=<entityWebUrl>&label=<entityLabel>&context=<context>.

Exemple :

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"}

Par défaut, un lien profond s’ouvre dans le panneau latéral d’une réunion. Pour ouvrir un lien profond directement dans une application plutôt que dans le panneau latéral de la réunion, ajoutez openInMeeting=false le format de lien profond :

https://teams.microsoft.com/l/entity/<appId>/<entityId>?webUrl=<entityWebUrl>&label=<entityLabel>&context=<context>&openInMeeting=false

Pour plus d’informations, consultez lien profond vers un onglet.

Le lien profond ne s’ouvre pas dans le panneau latéral de la réunion dans les scénarios suivants :

  • Il n’y a pas de réunion active.
  • L’application n’a sidePanel pas de contexte déclaré dans le manifeste de l’application.
  • openInMeeting est défini sur false dans le lien profond.
  • Le lien profond est sélectionné en dehors de la fenêtre ou du composant de réunion.
  • Le lien profond ne correspond pas à la réunion actuelle, comme un lien profond créé dans une autre réunion.

L’application Teams peut lire l’URL pour rejoindre une URL de réunion via les API Graph. Ce lien profond affiche l’interface utilisateur permettant à l’utilisateur de rejoindre la réunion. Pour plus d’informations, consultez Obtenir onlineMeeting et obtenir les détails de la réunion.

Exemple de code

Exemple de nom Description .NET Node.js
ID de sous-entité consommatrice de lien profond Cet exemple montre comment utiliser un lien profond à partir d’une conversation de bot vers un onglet utilisant l’ID de sous-entité. Il affiche également des liens profonds pour :
- Navigation vers une application
- Navigation vers une conversation
- Ouvrir une boîte de dialogue de profil
- Ouvrir une boîte de dialogue de planification
View View