Partager via


Bibliothèque de client Azure Communication Common pour .NET - version 1.2.1

Ce package contient du code commun pour les bibliothèques Azure Communication Service.

| Code sourcePackage (NuGet) | Documentation produit

Prise en main

Installer le package

Installez la bibliothèque de client Azure Communication Common pour .NET avec NuGet.

dotnet add package Azure.Communication.Common

Prérequis

Vous avez besoin d’un abonnement Azure et d’une ressource Communication Service pour utiliser ce package.

Pour créer un service communication, vous pouvez utiliser le portail Azure, le Azure PowerShell ou la bibliothèque de client de gestion .NET.

Authentifier le client

Ce module ne contient pas de client, mais des bibliothèques qui aident d’autres clients Azure Communication à s’authentifier.

Concepts clés

CommunicationTokenCredential

L’objet CommunicationTokenCredential est utilisé pour authentifier un utilisateur auprès de Communication Services, par exemple chat ou appel. Il fournit éventuellement un mécanisme d’actualisation automatique pour garantir un état d’authentification stable en continu pendant les communications.

Selon votre scénario, vous souhaiterez peut-être initialiser avec CommunicationTokenCredential :

  • un jeton statique (adapté aux clients de courte durée utilisés pour envoyer des messages de conversation ponctuels, par exemple) ou
  • fonction de rappel qui garantit un état d’authentification continue (idéal, par exemple, pour les sessions d’appel longues).

Les jetons fournis au CommunicationTokenCredential par le biais du constructeur ou du rappel de l’actualisation de jeton peuvent être obtenus à l’aide de la bibliothèque Azure Communication Identity.

Sécurité des threads

Nous garantissons que toutes les méthodes de instance client sont thread-safe et indépendantes les unes des autres (instructions). Cela garantit que la recommandation de réutilisation des instances clientes est toujours sécurisée, même entre les threads.

Concepts supplémentaires

Options | du client Accès à la réponse | Opérations | de longue duréeGestion des défaillances | Diagnostics | Moqueur | Durée de vie du client

Exemples

Créer des informations d’identification avec un jeton statique

Pour les clients de courte durée, l’actualisation du jeton lors de l’expiration n’est pas nécessaire et CommunicationTokenCredential peut être instanciée avec un jeton statique.

string token = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_USER_TOKEN");
using var tokenCredential = new CommunicationTokenCredential(token);

Créer des informations d’identification avec un rappel

Pour les clients de longue durée, vous pouvez également créer un CommunicationTokenCredential avec un rappel pour renouveler les jetons en cas d’expiration. Ici, nous passons deux fonctions imaginées qui effectuent des demandes réseau pour récupérer des chaînes de jeton pour l’utilisateur Bob. Si des rappels sont passés, lors des demandes (envoi d’un message de conversation), CommunicationTokenCredential garantit qu’un jeton valide est acquis avant l’exécution de la demande. Il est nécessaire que la FetchTokenForUserFromMyServer méthode retourne un jeton valide (avec une date d’expiration définie à l’avenir) à tout moment.

Si vous le souhaitez, vous pouvez activer l’actualisation proactive des jetons où un nouveau jeton est acquis dès que le jeton précédent approche de l’expiration. À l’aide de cette méthode, vos demandes sont moins susceptibles d’être bloquées pour acquérir un nouveau jeton :

using var tokenCredential = new CommunicationTokenCredential(
    new CommunicationTokenRefreshOptions(
        refreshProactively: true, // Indicates if the token should be proactively refreshed in the background or only on-demand
        tokenRefresher: cancellationToken => FetchTokenForUserFromMyServer("bob@contoso.com", cancellationToken))
    {
        AsyncTokenRefresher = cancellationToken => FetchTokenForUserFromMyServerAsync("bob@contoso.com", cancellationToken)
    });

Si vous avez déjà un jeton, vous pouvez optimiser l’actualisation du jeton encore plus en transmettant ce jeton initial :

string initialToken = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_USER_TOKEN");
using var tokenCredential = new CommunicationTokenCredential(
    new CommunicationTokenRefreshOptions(
       refreshProactively: true, // Indicates if the token should be proactively refreshed in the background or only on-demand
       tokenRefresher: cancellationToken => FetchTokenForUserFromMyServer("bob@contoso.com", cancellationToken))
    {
        AsyncTokenRefresher = cancellationToken => FetchTokenForUserFromMyServerAsync("bob@contoso.com", cancellationToken),
        InitialToken = initialToken
    });

Résolution des problèmes

Les échecs d’actualisation proactive se produisent dans un thread d’arrière-plan et pour éviter le blocage de votre application, les exceptions sont gérées en mode silencieux. Tous les autres échecs se produisent lors de votre demande à l’aide d’autres clients, tels que la conversation, où vous pouvez intercepter l’exception à l’aide de RequestFailedException.

Étapes suivantes

En savoir plus sur les jetons d’accès utilisateur communication

Contribution

Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, les droits d’utilisation de votre contribution. Pour plus d’informations, visitez cla.microsoft.com.

Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.