Demander des autorisations de périphérique pour votre onglet Microsoft teamsRequest device permissions for your Microsoft Teams tab

Vous souhaiterez peut-être enrichir votre onglet avec des fonctionnalités qui nécessitent l’accès à des fonctionnalités d’appareil natives comme :You might want to enrich your tab with features that require access native device functionality like:

  • Appareil photoCamera
  • MicroMicrophone
  • EmplacementLocation
  • NotificationsNotifications

Important

  • Actuellement, le client mobile teams prend en charge camera et location via les fonctionnalités de périphérique natives, et est disponible sur toutes les constructions d’application, y compris les onglets.Currently, Teams mobile client only supports camera and location through native device capabilities and is available on all app constructs including tabs.
  • La prise en charge de camera la capture d’image est activée par l' API captureImage.Support for camera image capture is enabled by the captureImage API.
  • L' API de géolocalisation n’est actuellement pas entièrement prise en charge sur tous les clients de bureau.The geolocation API is currently not fully supported on all desktop clients.

Autorisations de l’appareilDevice permissions

L’accès aux autorisations de l’appareil d’un utilisateur vous permet de créer des expériences plus riches, par exemple :Accessing a user’s device permissions allows you to build much richer experiences, for example:

  • Enregistrer et partager des courtes vidéosRecord and share short videos
  • Enregistrez des mémos audio courts et enregistrez-les pour une version ultérieure.Record short audio memos and save them for later
  • Utiliser les informations relatives à l’emplacement de l’utilisateur pour afficher les informations pertinentesUse user location information to display relevant information

Bien que l’accès à ces fonctionnalités soit standard dans la plupart des navigateurs Web modernes, vous devez informer teams des fonctionnalités que vous souhaitez utiliser en mettant à jour votre manifeste d’application.While access to these features are standard in most modern web browsers, you need to let Teams know which features you’d like to use by updating your app manifest. Cela vous permettra de demander des autorisations, de la même façon que vous le feriez dans un navigateur, tandis que votre application est exécutée sur le client de bureau Teams.This will allow you to ask for permissions, the same way you would in a browser, while your app is running on the Teams desktop client.

Gérer les autorisationsManage permissions

  1. Ouvrez Teams.Open Teams.
  2. Dans le coin supérieur droit de la fenêtre, sélectionnez l’icône de votre profil.In the upper right corner of the window, select your profile icon.
  3. Sélectionnez Settings -> autorisations des paramètres dans le menu déroulant.Select Settings -> Permissions from the drop-down menu.
  4. Choisissez les paramètres de votre choix.Choose your desired settings.

Écran des paramètres de bureau des autorisations de périphérique

PropriétésProperties

Mettez à jour votre application manifest.json en ajoutant devicePermissions et en spécifiant les cinq propriétés que vous souhaitez utiliser dans votre application :Update your app's manifest.json by adding devicePermissions and specifying which of the five properties you’d like to use in your application:

"devicePermissions": [
    "media",
    "geolocation",
    "notifications",
    "midi",
    "openExternal"
],

Notes

Le support est également utilisé pour les autorisations d’appareil photo dans mobile.Media is also used for camera permissions in mobile.

Chaque propriété vous permet d’inviter l’utilisateur à demander son consentement.Each property will allow you to prompt the user to ask for their consent

PropriétéProperty DescriptionDescription
pannemedia autorisation d’utilisation de l’appareil photo, du microphone et des haut-parleurspermission to use the camera, microphone and speakers
géolocalisationgeolocation autorisation de retourner l’emplacement de l’utilisateurpermission to return the user's location
notificationsnotifications autorisation d’envoyer les notifications de l’utilisateurpermission to send the user notifications
midimidi autorisation d’envoyer et de recevoir des informations midi à partir d’un instrument musical numériquepermission to send and receive midi information from a digital musical instrument
openExternalopenExternal autorisation d’ouvrir des liens dans des applications externespermission to open links in external applications

Vérification des autorisations à partir de votre ongletChecking permissions from your tab

Une fois que vous avez ajouté devicePermissions à votre manifeste d’application, vous pouvez vérifier les autorisations à l’aide de l’API HTML5 « autorisations » sans générer d’invite.Once you’ve added devicePermissions to your app manifest, you can check permissions using the HTML5 “permissions” API without causing a prompt.

// Different query options:
navigator.permissions.query({ name: 'camera' });
navigator.permissions.query({ name: 'microphone' });
navigator.permissions.query({ name: 'geolocation' });
navigator.permissions.query({ name: 'notifications' });
navigator.permissions.query({ name: 'midi', sysex: true });

// Example:
navigator.permissions.query({name:'geolocation'}).then(function(result) {
  if (result.state == 'granted') {
    // Access granted
  } else if (result.state == 'prompt') {
    // Access has not been granted
  }
});

Demander à l’utilisateurPrompting the user

Pour afficher une invite permettant d’obtenir le consentement pour accéder aux autorisations des appareils, vous devez tirer parti de l’API HTML5 ou teams appropriée.In order to show a prompt to get consent to access device permissions you need to leverage the appropriate HTML5 or Teams API. Par exemple, pour inviter l’utilisateur à accéder à sa caméra, vous devez appelergetCurrentPositionFor example, in order to prompt the user to access their camera you need to call getCurrentPosition

navigator.geolocation.getCurrentPosition(function (position) { /*... */ });

Pour utiliser l’appareil photo sur le bureau ou sur le Web, teams affiche une invite d’autorisation lorsque vous appelez getUserMediaTo use camera on desktop or web, Teams will show a permission prompt when you call getUserMedia

navigator.mediaDevices.getUserMedia({ audio: true, video: true });

Pour capturer une image sur mobile, teams mobile demande des autorisations lorsqu’il est appelé captureImage ()To capture image on mobile, Teams mobile will ask for permission when called captureImage()

function captureImage(callback: (error: SdkError, files: File[]) => void)

Les notifications invitent l’utilisateur lorsque vous appelezrequestPermissionNotifications will prompt the user when you call requestPermission

Notification.requestPermission(function(result) { /* ... */ });

Invite des autorisations des appareils de tabulation

Comportement des autorisations entre les sessions de connexionPermission behavior across login sessions

Les autorisations natives des appareils sont stockées par session de connexion.Native device permissions are stored per login session. Cela signifie que si vous vous connectez à une autre instance de Teams (par exemple, sur un autre ordinateur), les autorisations de votre appareil pour vos sessions précédentes ne seront pas disponibles.This means that if you log into another instance of Teams (ex: on another computer), your device permissions from your previous sessions will not be available. Au lieu de cela, vous devrez redéfinir les autorisations des appareils pour la nouvelle session de connexion.Instead, you will need to re-consent to device permissions for the new login session. Cela signifie également que si vous vous déconnectez de Teams (ou que vous changez de locataire dans Teams), vos autorisations sur les appareils seront supprimées pour cette session précédente.This also means, if you log out of Teams (or switch tenants inside of Teams), your device permissions will be deleted for that previous login session. Gardez cela à l’esprit lorsque vous développez des autorisations d’appareil natives : les fonctionnalités natives que vous acceptez pour votre session de connexion actuelle .Please keep this in mind when developing native device permissions: the native capabilities you consent to are only for your current login session.