Inscrire un bot d'appels et de réunions pour Microsoft TeamsRegister a calls and meetings bot for Microsoft Teams

Un bot qui participe à des appels audio ou vidéo et à des réunions en ligne est un bot Microsoft Teams normal avec les fonctionnalités supplémentaires suivantes utilisées pour inscrire le bot :A bot that participates in audio or video calls and online meetings is a regular Microsoft Teams bot with the following extra features used to register the bot:

  • Il existe une nouvelle version du manifeste de l'application Teams avec deux paramètres supplémentaires, supportsCalling et supportsVideo .There is a new version of the Teams app manifest with two additional settings, supportsCalling and supportsVideo. Ces paramètres sont inclus dans la version préliminaire du développeur du manifeste de l'application Teams.These settings are included in the developer preview version of the Teams app manifest.
  • Les autorisations Microsoft Graph doivent être configurées pour l'ID d'application Microsoft de votre bot.Microsoft Graph permissions must be configured for your bot's Microsoft App ID.
  • Les autorisations des appels Graph et des API de réunion en ligne nécessitent le consentement de l'administrateur client.The Graph calls and online meetings APIs permissions require tenant admin consent.

Nouveaux paramètres de manifesteNew manifest settings

Les bots d'appels et de réunions en ligne ont les deux paramètres supplémentaires suivants dans le manifest.jsqui activent l'audio ou la vidéo pour votre bot dans Teams.Calls and online meetings bots have the following two additional settings in the manifest.json that enable audio or video for your bot in Teams.

  • bots[0].supportsCalling.bots[0].supportsCalling. S'il est présent et qu'il est définie sur , Teams permet à votre bot de true participer à des appels et à des réunions en ligne.If present and set to true, Teams allows your bot to participate in calls and online meetings.
  • bots[0].supportsVideo.bots[0].supportsVideo. S'il est présent et qu'il est prêt true à l'être, Teams sait que votre bot prend en charge la vidéo.If present and set to true, Teams knows that your bot supports video.

Si vous souhaitez que votre IDE valide correctement l'manifest.jssur le schéma de vos appels et bot de réunions pour ces valeurs, vous pouvez modifier l'attribut comme $schema suit :If you want your IDE to properly validate the manifest.json schema for your calls and meetings bot for these values, you can change the $schema attribute as follows:

"$schema": "https://raw.githubusercontent.com/OfficeDev/microsoft-teams-app-schema/preview/DevPreview/MicrosoftTeams.schema.json",

La section suivante vous permet de créer un bot ou d'ajouter des fonctionnalités d'appel à votre bot existant.The next section enables you to create a new bot or add calling capabilities to your existing bot.

Créer un bot ou ajouter des fonctionnalités d'appelCreate new bot or add calling capabilities

Pour plus d'informations sur la création de bots, voir créer un bot pour Teams.For information on creating bots, see create a bot for Teams.

Pour créer un bot pour TeamsTo create a new bot for Teams

  1. Utilisez ce lien pour créer un bot, https://dev.botframework.com/bots/new .Use this link to create a new bot, https://dev.botframework.com/bots/new. Sinon, si vous sélectionnez le bouton Créer un bot dans le portail Bot Framework, vous créez votre bot dans Microsoft Azure, pour lequel vous devez avoir un compte Azure.Alternately, if you select the Create a bot button in the Bot Framework portal, you create your bot in Microsoft Azure, for which you must have an Azure account.

  2. Ajoutez le canal Teams.Add the Teams channel.

  3. Sélectionnez l'onglet Appel sur la page de canal Teams.Select the Calling tab on the Teams channel page. Sélectionnez Activer l'appel, puis mettez à jour le webhook (pour l'appel) avec votre URL HTTPS où vous recevez des notifications entrantes, par https://contoso.com/teamsapp/api/calling exemple.Select Enable calling, and then update Webhook (for calling) with your HTTPS URL where you receive incoming notifications, for example https://contoso.com/teamsapp/api/calling. Pour plus d'informations, voir la configuration des canaux.For more information, see configuring channels.

    Configurer les informations de canal Teams

La section suivante fournit une liste des autorisations d'application pris en charge pour les appels et les réunions en ligne.The next section provides a list of application permissions supported for calls and online meetings.

Ajouter des autorisations GraphAdd Graph permissions

Graph fournit des autorisations granulaires pour contrôler l'accès des applications aux ressources.The Graph provides granular permissions to control the access that apps have to resources. Vous déterminez les autorisations pour Graph que votre application demande.You decide which permissions for Graph your app requests. Les API d'appel graphe prendre en charge les autorisations d'application, qui sont utilisées par les applications qui s'exécutent sans utilisateur inscrit.The Graph calling APIs support application permissions, which are used by apps that run without a signed-in user present. Un administrateur client doit donner son consentement aux autorisations d'application.A tenant administrator must grant consent to application permissions.

Autorisations d'application pour les appelsApplication permissions for calls

Le tableau suivant fournit une liste des autorisations d'application pour les appels :The following table provides a list of application permissions for calls:

AutorisationPermission Chaîne d'affichageDisplay string DescriptionDescription Consentement de l'administrateur requisAdmin consent required
Calls.Initiate.AllCalls.Initiate.All Lancez les appels sortants 1:1 à partir de l'aperçu de l'application.Initiate outgoing 1:1 calls from the app preview. Permet à l’application de passer des appels sortants à un seul utilisateur et de transférer des appels à des utilisateurs dans l’annuaire de votre organisation, sans utilisateur connecté.Allows the app to place outbound calls to a single user and transfer calls to users in your organization’s directory, without a signed-in user. OuiYes
Calls.InitiateGroupCall.AllCalls.InitiateGroupCall.All Lancez des appels de groupe sortants à partir de l'aperçu de l'application.Initiate outgoing group calls from the app preview. Permet à l’application de passer des appels sortants à plusieurs utilisateurs et d’ajouter des participants à des réunions dans votre organisation, sans utilisateur connecté.Allows the app to place outbound calls to multiple users and add participants to meetings in your organization, without a signed-in user. OuiYes
Calls.JoinGroupCall.AllCalls.JoinGroupCall.All Participer à des appels de groupe et à des réunions en tant qu'aperçu d'application.Join group calls and meetings as an app preview. Permet à l’application de rejoindre les appels de groupe et les réunions planifiées dans votre organisation, sans utilisateur connecté.Allows the app to join group calls and scheduled meetings in your organization, without a signed-in user. L'application est jointe avec les privilèges d'un utilisateur d'annuaire aux réunions dans votre client.The app is joined with the privileges of a directory user to meetings in your tenant. OuiYes
Calls.JoinGroupCallasGuest.AllCalls.JoinGroupCallasGuest.All Participer à des appels de groupe et à des réunions en tant qu'aperçu invité.Join group calls and meetings as a guest preview. Permet à l’application de rejoindre anonymement les appels de groupe et les réunions planifiées dans votre organisation, sans utilisateur connecté.Allows the app to anonymously join group calls and scheduled meetings in your organization, without a signed-in user. L'application est jointe en tant qu'invité aux réunions dans votre client.The app is joined as a guest to meetings in your tenant. OuiYes
Calls.AccessMedia.AllCalls.AccessMedia.All Accéder aux flux multimédias dans un appel en tant qu'aperçu d'application.Access media streams in a call as an app preview. Permet à l’application d’obtenir un accès direct aux flux multimédias dans un appel, sans utilisateur connecté.Allows the app to get direct access to media streams in a call, without a signed-in user. OuiYes

Important

Vous ne pouvez pas utiliser l'API Media Access pour enregistrer ou faire persister du contenu multimédia à partir d'appels ou de réunions que votre application accède ou dérive des données de cet enregistrement ou enregistrement de contenu multimédia.You cannot use the Media Access API to record or otherwise persist media content from calls or meetings that your application accesses or derive data from that media content record or recording. Vous devez d'abord appeler updateRecordingStatus l'API pour indiquer que l'enregistrement a commencé et recevoir une réponse de réussite de cette API.You must first call the updateRecordingStatus API to indicate that recording has begun, and receive a success reply from that API. Si votre application commence à enregistrer une réunion ou un appel, elle doit mettre fin à l'enregistrement avant d'appeler l'API pour indiquer que l'enregistrement updateRecordingStatus est terminé.If your application begins recording any meeting or call, it must end the recording before calling the updateRecordingStatus API to indicate that the recording has ended.

Autorisations d'application pour les réunions en ligneApplication permissions for online meetings

Le tableau suivant fournit une liste des autorisations d'application pour les réunions en ligne :The following table provides a list of application permissions for online meetings:

AutorisationPermission Chaîne d'affichageDisplay string DescriptionDescription Consentement de l'administrateur requisAdmin consent required
OnlineMeetings.Read.AllOnlineMeetings.Read.All Lire les détails de la réunion en ligne à partir de l'aperçu de l'applicationRead online meeting details from the app preview Permet à l'application de lire les détails d'une réunion en ligne dans votre organisation, sans utilisateur.Allows the app to read online meeting details in your organization, without a signed-in user. OuiYes
OnlineMeetings.ReadWrite.AllOnlineMeetings.ReadWrite.All Lire et créer des réunions en ligne à partir de l'aperçu de l'application pour le compte d'un utilisateurRead and create online meetings from the app preview on behalf of a user Permet à l'application de créer des réunions en ligne dans votre organisation au nom d'un utilisateur, sans utilisateur.Allows the app to create online meetings in your organization on behalf of a user, without a signed-in user. OuiYes

Attribuer des autorisationsAssign permissions

Vous devez configurer les autorisations d'application pour votre bot à l'avance à l'aide du portail Azure si vous préférez utiliser le point de terminaison Azure Active Directory (AAD) V1.You must configure the application permissions for your bot in advance by using the Azure portal if you prefer to use the Azure Active Directory (AAD) V1 endpoint.

Pour les applications utilisant le point de terminaison AAD V1, un administrateur client peut consentir aux autorisations d'application à l'aide du portail Azure lorsque votre application est installée dans son organisation.For apps using the AAD V1 endpoint, a tenant administrator can consent to the application permissions using the Azure portal when your app is installed in their organization. Vous pouvez également fournir une expérience d'inscription dans votre application par le biais de laquelle les administrateurs peuvent consentir aux autorisations que vous avez configurées.Alternately, you can provide a sign-up experience in your app through which administrators can consent to the permissions you configured. Une fois le consentement de l'administrateur enregistré par AAD, votre application peut demander des jetons sans avoir à demander à nouveau le consentement.Once administrator consent is recorded by AAD, your app can request tokens without having to request consent again.

Vous pouvez compter sur un administrateur pour accorder les autorisations dont votre application a besoin sur le portail Azure.You can rely on an administrator to grant the permissions your app needs at the Azure portal. Une meilleure option consiste à fournir une expérience d'inscription aux administrateurs à l'aide du point de terminaison AAD /adminconsent V2.A better option is to provide a sign-up experience for administrators by using the AAD V2 /adminconsent endpoint. Pour plus d'informations, voir les instructions sur la construction d'une URL de consentement d'administrateur.For more information, see instructions on constructing an Admin consent URL.

Notes

Pour construire l'URL de consentement de l'administrateur client, un URI de redirection configuré ou une URL de réponse dans le portail d'inscription de l'application est requis.To construct the tenant Admin consent URL, a configured redirect URI or reply URL in the app registration portal is required. Pour ajouter des URL de réponse pour votre bot, accédez à l'inscription de votre bot, choisissez Options avancées Modifier le manifeste de > l'application.To add reply URLs for your bot, access your bot registration, choose Advanced Options > Edit Application Manifest. Ajoutez votre URL de redirection à la replyUrls collection.Add your redirect URL to the replyUrls collection.

Important

Chaque fois que vous modifiez les autorisations de votre application, vous devez également répéter le processus de consentement de l'administrateur.Anytime you make a change to your application's permissions, you must also repeat the Admin consent process. Les modifications apportées dans le portail d'inscription des applications ne sont pas reflétées tant que l'administrateur du client n'a pas réapplité le consentement.Changes made in the app registration portal are not reflected until the consent has been reapplied by the tenant's administrator.

Étape suivanteNext step