Поделиться через


Клиентская библиотека администрирования коммуникаций Azure для JavaScript версии 1.0.0-beta.3

Библиотека администрирования используется для управления пользователями и маркерами для Службы коммуникации Azure. Эта библиотека также предоставляет возможности для администрирования номеров телефонов.

Приобретенные номера телефонов могут быть доступны с множеством возможностей в зависимости от страны, типа номера и плана телефона. Примеры возможностей: входящее и исходящее использование SMS, входящее и исходящее использование ТСОП. Номера телефонов также можно назначить боту через URL-адрес веб-перехватчика.

Начало работы

Предварительные требования

Установка

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

Устранение неполадок

Дальнейшие действия

Подробные примеры использования этой библиотеки см. в каталоге примеров .

Участие

Если вы хотите вносить изменения в эту библиотеку, ознакомьтесь с руководством по внесению изменений, в котором содержатся сведения о создании и тестировании кода.

Просмотры