JavaScript 用 Azure Communication Administration クライアント ライブラリ - バージョン 1.0.0-beta.3
管理ライブラリは、Azure Communication Servicesのユーザーとトークンを管理するために使用されます。 このライブラリには、電話番号管理の機能も用意されています。
取得した電話番号には、国、番号の種類、電話プランに応じて、多くの機能が用意されています。 機能の例としては、SMS の受信と送信の使用状況、PSTN の受信と送信の使用状況があります。 電話番号は、Webhook URL を使用してボットに割り当てることもできます。
作業の開始
前提条件
- Azure サブスクリプション。
- 既存の Communication Services リソース。 リソースを作成する必要がある場合は、 Azure Portal または Azure CLI を使用できます。
[インストール中]
npm install @azure/communication-administration
主要な概念
クライアント
管理パッケージは、2 つのクライアントを公開します。 には CommunicationIdentityClient
、ユーザーとそのトークンを管理するメソッドが用意されています。 には PhoneNumberAdministrationClient
、電話プランと電話番号を管理するメソッドが用意されています。
電話プランの概要
電話プランには 2 種類があります。地理的および無料。 地理的な電話プランは、電話番号のエリア コードが地理的な場所のエリア コードに関連付けられている場所に関連付けられている電話プランです。 Toll-Free電話プランは、電話プランに関連付けられていない場所です。 たとえば、米国では、フリーダイヤル番号には 800 や 888 などの市区地区コードが付属しています。
同じ国内のすべての地理的な電話プランは、地理的な電話番号の種類を持つ電話プラン グループにグループ化されます。 同じ国のすべてのToll-Free電話プランは、電話プラン グループにグループ化されます。
数値の検索と取得
電話番号は、電話プラン ID、エリア コード、電話番号の数量を指定することで、検索作成 API を使用して検索できます。 指定された電話番号の数量は、10 分間予約されます。 電話番号のこの検索は、取り消すか購入することができます。 検索が取り消されると、電話番号は他のユーザーが利用できるようになります。 検索が購入されると、Azure リソースの電話番号が取得されます。
数値の構成と割り当て
電話番号は、構成番号 API を使用してコールバック URL に割り当てることができます。 構成の一環として、取得した電話番号、コールバック URL、アプリケーション ID が必要です。
例
認証
Azure Portal で Communication Services リソースからキーや接続文字列を取得できます。 キーを取得したら、次のいずれかの方法で と PhoneNumberAdministrationClient
を認証CommunicationIdentityClient
できます。
クライアントをAzureKeyCredential
初期化する前に を使用して を作成KeyCredential
する
import { AzureKeyCredential } from "@azure/core-auth";
import { CommunicationIdentityClient } from "@azure/communication-administration";
const credential = new AzureKeyCredential(KEY);
const client = new CommunicationIdentityClient(HOST, credential);
接続文字列の使用
import { PhoneNumberAdministrationClient } from "@azure/communication-administration";
const connectionString = `endpoint=HOST;accessKey=KEY`;
const client = new CommunicationIdentityClient(connectionString);
キーを使用してクライアントを初期化する場合は、適切なエンドポイントも指定する必要があります。 このエンドポイントは、 Azure Portal の Communication Services リソースから取得できます。
使用方法
CommunicationIdentityClient
CommunicationIdentityClient のインスタンスの作成
import { CommunicationIdentityClient } from "@azure/communication-administration";
const client = new CommunicationIdentityClient(CONNECTION_STRING);
新しいユーザーの作成
メソッドを createUser
使用して新しいユーザーを作成します。
const user = await client.createUser();
ユーザー トークンの作成と更新
メソッドを issueToken
使用して、既存のユーザーのトークンを発行または更新します。 メソッドは、通信トークン スコープの一覧も受け取ります。 スコープ オプションには、次のものが含まれます。
-
chat
(チャット) -
pstn
(公衆交換電話網) -
voip
(ボイス オーバー IP)
let { token } = await client.issueToken(user, ["chat"]);
ユーザー トークンを更新するには、同じユーザーで別のトークンを発行します。
{ token } = await client.issueToken(user, ["chat"]);
ユーザーのトークンの取り消し
メソッドを revokeTokens
使用して、ユーザーのすべての発行済みトークンを取り消します。
await client.revokeTokens(user);
revokeTokens
は、省略可能な 2 番目の引数 tokensValidFrom
を受け取ります。 この日付が指定されている場合、 は、 revokeTokens
その前に発行されたすべてのトークンを取り消します。 それ以外の場合、すべてのトークンが取り消されます。
ユーザーの削除
ユーザーを削除するには、 deleteUser
メソッドを使用します。
await client.deleteUser(user);
PhoneNumberAdministrationClient
PhoneNumberAdministrationClient のインスタンスの作成
import { CommunicationIdentityClient } from "@azure/communication-administration";
const client = new CommunicationIdentityClient(CONNECTION_STRING);
国の取得
サポートされている国の listSupportedCountries
一覧を取得するには、 メソッドを使用します。
const countries = await client.listSupportedCountries();
for await (const country of countries) {
console.log(`Country code: ${country.countryCode}`);
console.log(`Country name: ${country.localizedName}`);
}
電話プラン グループの取得
電話プラン グループには、地域と無料の 2 種類があります。 メソッドを listPhonePlanGroups
使用して取得します。
const countryCode = "US";
const phonePlanGroups = await client.listPhonePlanGroups(countryCode);
for await (const phonePlanGroup of phonePlanGroups) {
console.log(`Phone plan group id: ${phonePlanGroup.phonePlanGroupId}`);
}
場所オプションの取得
地理的な電話プランの場合は、利用可能な地理的な場所に対してクエリを実行できます。 場所のオプションは、国の地理的階層のように構成されています。 たとえば、米国には州があり、各州内には都市があります。
メソッドを getPhonePlanLocationOptions
使用して、場所のオプションを取得します。
const { locationOptions } = await client.getPhonePlanLocationOptions({
countryCode: "US",
phonePlanGroupId: "phonePlanGroupId",
phonePlanId: "phonePlanId"
});
console.log(`Got location options for: ${locationOptions.labelId}`);
市域コードの取得
地理的な電話プランのエリア コードをフェッチするには、場所のオプション クエリが設定されている必要があります。 によって返される場所オプション オブジェクトを走査する地理的な場所のチェーンを getPhonePlanLocationOptions
含める必要があります。
地理的な電話プランの getAreaCodes
エリア コードを取得するには、 メソッドを使用します。
const { primaryAreaCodes } = await client.getAreaCodes({
locationType: "selection",
countryCode: "US",
phonePlanId: "phonePlanId",
locationOptionsQueries
});
購入用の電話番号を予約する
電話番号を beginReservePhoneNumbers
検索して予約するには、 メソッドを使用します。 この操作の実行には時間がかかります。
const reservePoller = await client.beginReservePhoneNumbers({
name: "Phone number search 800",
description: "Search for 800 phone numbers"
phonePlanIds: ["phone-plan-id-1"],
areaCode: "800",
quantity: 3
});
予約の結果を取得するには、作成した pollUntilDone
ポーリングャーで メソッドを使用します。
const phoneNumberReservation = await reservePoller.pollUntilDone();
ポーリングと予約をキャンセルするには、作成した cancelOperation
ポーリングャーで メソッドを呼び出します。
await reservePoller.cancelOperation();
予約から電話番号を購入する
予約から beginPurchasePhoneNumbers
電話番号を購入するには、 メソッドを使用します。
reservationId
からbeginReservePhoneNumbers
返される が必要です。
beginPurchasePhoneNumbers
は実行時間の長い操作でもあります。
const { reservationId } = phoneNumberReservation;
const purchasePoller = await client.beginPurchasePhoneNumbers(reservationId);
購入の結果を取得するには、作成した pollUntilDone
購入投票者の メソッドを使用します。
const results = await purchasePoller.pollUntilDone();
トラブルシューティング
次のステップ
このライブラリの使用方法の詳細な例については、 samples ディレクトリを参照してください。
共同作成
このライブラリに投稿する場合、コードをビルドしてテストする方法の詳細については、投稿ガイドを参照してください。
関連プロジェクト
Azure SDK for JavaScript