Клиентская библиотека администрирования коммуникаций Azure для JavaScript версии 1.0.0-beta.3
Библиотека администрирования используется для управления пользователями и маркерами для Службы коммуникации Azure. Эта библиотека также предоставляет возможности для администрирования номеров телефонов.
Приобретенные номера телефонов могут быть доступны с множеством возможностей в зависимости от страны, типа номера и плана телефона. Примеры возможностей: входящее и исходящее использование SMS, входящее и исходящее использование ТСОП. Номера телефонов также можно назначить боту через URL-адрес веб-перехватчика.
Начало работы
Предварительные требования
- Подписка Azure.
- Существующий ресурс Служб коммуникации. Если вам нужно создать ресурс, можно использовать портал Azure или Azure CLI.
Установка
npm install @azure/communication-administration
Основные понятия
Клиенты
Пакет администрирования предоставляет два клиента. Предоставляет CommunicationIdentityClient
методы для управления пользователями и их токенами. Предоставляет PhoneNumberAdministrationClient
методы для управления телефонными планами и номерами.
Общие сведения о планах телефонов
Планы телефонов бывают двух типов; Географические и бесплатные. Географические тарифные планы — это телефонные планы, связанные с расположением, коды регионов которых номера телефонов связаны с кодом региона географического расположения. Toll-Free тарифные планы — это планы телефонов, не связанные с расположением. Например, в США бесплатные номера могут поставляются с кодами городов, такими как 800 или 888.
Все географические тарифные планы в одной стране сгруппированы в группу планов телефонов с типом географических номеров телефонов. Все Toll-Free тарифные планы в одной стране группируются в группу планов телефонов.
Поиск и получение чисел
Номера телефонов можно искать с помощью API создания поиска, указав идентификатор плана телефона, код города и количество номеров телефонов. Предоставленное количество номеров телефонов будет зарезервировано на десять минут. Этот поиск номеров телефонов можно отменить или приобрести. Если поиск отменен, номера телефонов станут доступны другим пользователям. Если поиск приобретен, то для ресурсов Azure будут получены номера телефонов.
Настройка и назначение чисел
Номера телефонов можно назначить URL-адресу обратного вызова с помощью API настройки номера. В рамках конфигурации вам потребуется полученный номер телефона, URL-адрес обратного вызова и идентификатор приложения.
Примеры
Аутентификация
Ключ и (или) строку подключения можно получить из ресурса Служб коммуникации на портале Azure. Получив ключ, вы можете проверить подлинность CommunicationIdentityClient
и PhoneNumberAdministrationClient
с помощью любого из следующих методов:
Создание KeyCredential
с AzureKeyCredential
до инициализации клиента
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.
Использование
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
принимает необязательный второй аргумент , 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}`);
}
Получение групп телефонных планов
Группы планов телефонов бывают двух типов: географические и бесплатные. Используйте метод , 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();
Устранение неполадок
Дальнейшие действия
Подробные примеры использования этой библиотеки см. в каталоге примеров .
Участие
Если вы хотите вносить изменения в эту библиотеку, ознакомьтесь с руководством по внесению изменений, в котором содержатся сведения о создании и тестировании кода.
Связанные проекты
Azure SDK for JavaScript