次の方法で共有


.NET 用 Azure Communication Common クライアント ライブラリ - バージョン 1.2.1

このパッケージには、Azure Communication Service ライブラリの一般的なコードが含まれています。

ソースコード | パッケージ (NuGet) | 製品ドキュメント

作業の開始

パッケージをインストールする

NuGet を使用して .NET 用の Azure Communication Common クライアント ライブラリをインストールします。

dotnet add package Azure.Communication.Common

前提条件

このパッケージを使用するには、 Azure サブスクリプションCommunication Service リソース が必要です。

新しい Communication Service を作成するには、Azure PortalAzure PowerShell、または .NET 管理クライアント ライブラリを使用できます。

クライアントを認証する

このモジュールには、クライアントと、他の Azure Communication クライアントの認証に役立つライブラリは含まれていません。

主要な概念

CommunicationTokenCredential

オブジェクトは CommunicationTokenCredential 、チャットや通話などの Communication Services でユーザーを認証するために使用されます。 必要に応じて、通信中に継続的に安定した認証状態を確保するための自動更新メカニズムが提供されます。

シナリオによっては、次を使用して を CommunicationTokenCredential 初期化できます。

  • 静的トークン (1 回限りのチャット メッセージの送信など、有効期間の短いクライアントに適しています) または
  • 継続的な認証状態を保証するコールバック関数 (たとえば、長い通話セッションに最適)。

コンストラクターまたはトークン リフレッシャー コールバックを介して に CommunicationTokenCredential 提供されるトークンは、Azure Communication Identity ライブラリを使用して取得できます。

スレッド セーフ

すべてのクライアント インスタンス メソッドがスレッド セーフであり、相互に独立していることを保証します (ガイドライン)。 これにより、スレッド間であっても、クライアント インスタンスの再利用に関する推奨事項が常に安全になります。

その他の概念

クライアント オプション | 応答 | へのアクセス実行時間の長い操作 | エラーの | 処理診断 | あざける | クライアントの有効期間

静的トークンを使用して資格情報を作成する

有効期間の短いクライアントの場合、有効期限が切れた時点でトークンを更新する必要 CommunicationTokenCredential はありません。静的トークンを使用してインスタンス化できます。

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

コールバックを使用して資格情報を作成する

または、有効期間の長いクライアントの場合は、コールバックを使用して を作成 CommunicationTokenCredential し、有効期限が切れた場合にトークンを更新することもできます。 ここでは、ユーザー Bob のトークン文字列を取得するためのネットワーク要求を行う 2 つの想像される関数を渡します。 コールバックが渡された場合、要求時 (チャット メッセージの送信) により CommunicationTokenCredential 、要求を実行する前に有効なトークンが確実に取得されます。 メソッドは常に FetchTokenForUserFromMyServer 有効なトークンを返す必要があります (有効期限が将来設定されています)。

必要に応じて、前のトークンの有効期限が近づくとすぐに新しいトークンが取得されるプロアクティブ トークンの更新を有効にすることができます。 このメソッドを使用すると、新しいトークンを取得するために要求がブロックされる可能性が低くなります。

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)
    });

トークンが既にある場合は、その初期トークンを渡すことで、トークンの更新をさらに最適化できます。

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
    });

トラブルシューティング

プロアクティブな更新エラーはバックグラウンド スレッドで発生し、アプリのクラッシュを回避するために、例外はサイレント処理されます。 他のすべてのエラーは、 を使用して例外をキャッチできるチャットなどの他のクライアントを使用して RequestFailedException要求中に発生します。

次の手順

コミュニケーション ユーザー アクセス トークンの詳細を参照してください

共同作成

このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。 詳細については、「 cla.microsoft.com」を参照してください。

このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。