Biblioteca de clientes da Administração de Comunicação do Azure para JavaScript – versão 1.0.0-beta.3
A biblioteca de administração é usada para gerenciar usuários e tokens para Serviços de Comunicação do Azure. Essa biblioteca também fornece recursos para administração de números de telefone.
Os números de telefone adquiridos podem vir com muitas funcionalidades, dependendo do país, do tipo de número e do plano telefônico. Exemplos de recursos são uso de entrada e saída de SMS, uso de entrada e saída de PSTN. Os números de telefone também podem ser atribuídos a um bot por meio de uma URL de webhook.
Introdução
Pré-requisitos
- Uma assinatura do Azure.
- Um recurso existente dos Serviços de Comunicação. Se você precisar criar o recurso, poderá usar o Portal do Azure ou a CLI do Azure.
Instalando o
npm install @azure/communication-administration
Principais conceitos
Clientes
O pacote de administração expõe dois clientes. O CommunicationIdentityClient
fornece métodos para gerenciar usuários e seus tokens. O PhoneNumberAdministrationClient
fornece métodos para gerenciar planos e números de telefone.
Visão geral dos planos telefônicos
Os planos telefônicos vêm em dois tipos; Geográfico e Gratuito. Planos telefônicos geográficos são planos telefônicos associados a um local, cujos códigos de área de números de telefone estão associados ao código de área de uma localização geográfica. Toll-Free planos telefônicos são planos telefônicos não associados ao local. Por exemplo, nos EUA, números de chamada gratuita podem vir com códigos de área como 800 ou 888.
Todos os planos telefônicos geográficos no mesmo país são agrupados em um grupo de planos telefônicos com um tipo de número de telefone Geográfico. Todos os Toll-Free planos telefônicos dentro do mesmo país são agrupados em um grupo de planos telefônicos.
Pesquisando e adquirindo números
Os números de telefone podem ser pesquisados por meio da API de criação de pesquisa fornecendo uma ID de plano de telefone, um código de área e uma quantidade de números de telefone. A quantidade fornecida de números de telefone será reservada por dez minutos. Essa pesquisa de números de telefone pode ser cancelada ou comprada. Se a pesquisa for cancelada, os números de telefone ficarão disponíveis para outras pessoas. Se a pesquisa for comprada, os números de telefone serão adquiridos para os recursos do Azure.
Configurando e atribuindo números
Os números de telefone podem ser atribuídos a uma URL de retorno de chamada por meio da API de configuração de número. Como parte da configuração, você precisará de um número de telefone adquirido, uma URL de retorno de chamada e uma ID do aplicativo.
Exemplos
Autenticação
Você pode obter uma chave e/ou uma cadeia de conexão do recurso dos Serviços de Comunicação no Portal do Azure. Depois de ter uma chave, você poderá autenticar o CommunicationIdentityClient
e PhoneNumberAdministrationClient
com qualquer um dos seguintes métodos:
Criar KeyCredential
com AzureKeyCredential
antes de inicializar o cliente
import { AzureKeyCredential } from "@azure/core-auth";
import { CommunicationIdentityClient } from "@azure/communication-administration";
const credential = new AzureKeyCredential(KEY);
const client = new CommunicationIdentityClient(HOST, credential);
Usando uma cadeia de conexão
import { PhoneNumberAdministrationClient } from "@azure/communication-administration";
const connectionString = `endpoint=HOST;accessKey=KEY`;
const client = new CommunicationIdentityClient(connectionString);
Se você usar uma chave para inicializar o cliente, também precisará fornecer o ponto de extremidade apropriado. Você pode obter esse ponto de extremidade do recurso dos Serviços de Comunicação no Portal do Azure.
Uso
CommunicationIdentityClient
Criando uma instância de CommunicationIdentityClient
import { CommunicationIdentityClient } from "@azure/communication-administration";
const client = new CommunicationIdentityClient(CONNECTION_STRING);
Criando um novo usuário
Use o createUser
método para criar um novo usuário.
const user = await client.createUser();
Criando e atualizando um token de usuário
Use o issueToken
método para emitir ou atualizar um token para um usuário existente. O método também usa uma lista de escopos de token de comunicação. As opções de escopo incluem:
-
chat
(Chat) -
pstn
(Rede telefônica pública comutada) -
voip
(Voz sobre IP)
let { token } = await client.issueToken(user, ["chat"]);
Para atualizar o token de usuário, emita outro token com o mesmo usuário.
{ token } = await client.issueToken(user, ["chat"]);
Revogando tokens para um usuário
Use o revokeTokens
método para revogar todos os tokens emitidos de um usuário.
await client.revokeTokens(user);
revokeTokens
usa um segundo argumento opcional, tokensValidFrom
. Se essa data for fornecida, revokeTokens
revogará todos os tokens emitidos antes dela. Caso contrário, todos os tokens serão revogados.
Excluir um usuário
Use o deleteUser
método para excluir um usuário.
await client.deleteUser(user);
PhoneNumberAdministrationClient
Criando uma instância de PhoneNumberAdministrationClient
import { CommunicationIdentityClient } from "@azure/communication-administration";
const client = new CommunicationIdentityClient(CONNECTION_STRING);
Obtendo países
Use o listSupportedCountries
método para obter uma lista dos países com suporte.
const countries = await client.listSupportedCountries();
for await (const country of countries) {
console.log(`Country code: ${country.countryCode}`);
console.log(`Country name: ${country.localizedName}`);
}
Obtendo grupos de planos telefônicos
Os grupos de planos telefônicos vêm em dois tipos, Geográfico e Gratuito. Use o listPhonePlanGroups
método para obtê-los.
const countryCode = "US";
const phonePlanGroups = await client.listPhonePlanGroups(countryCode);
for await (const phonePlanGroup of phonePlanGroups) {
console.log(`Phone plan group id: ${phonePlanGroup.phonePlanGroupId}`);
}
Obtendo opções de localização
Para planos de telefone geográficos, você pode consultar as localizações geográficas disponíveis. As opções de locais são estruturadas como a hierarquia geográfica de um país. Por exemplo, os EUA têm estados e dentro de cada estado estão cidades.
Use o getPhonePlanLocationOptions
método para obter as opções de um local.
const { locationOptions } = await client.getPhonePlanLocationOptions({
countryCode: "US",
phonePlanGroupId: "phonePlanGroupId",
phonePlanId: "phonePlanId"
});
console.log(`Got location options for: ${locationOptions.labelId}`);
Obtendo códigos de área
Buscar códigos de área para planos de telefone geográficos exigirá o conjunto de consultas de opções de localização. Você deve incluir a cadeia de localizações geográficas percorrendo o objeto de opções de localização retornado pelo getPhonePlanLocationOptions
.
Use o getAreaCodes
método para obter os códigos de área para planos de telefone geográficos.
const { primaryAreaCodes } = await client.getAreaCodes({
locationType: "selection",
countryCode: "US",
phonePlanId: "phonePlanId",
locationOptionsQueries
});
Reservando números de telefone para compra
Use o beginReservePhoneNumbers
método para pesquisar números de telefone e reserve-os. Essa é uma operação em execução longa.
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
});
Para obter os resultados da reserva, use o pollUntilDone
método no poller que você criou.
const phoneNumberReservation = await reservePoller.pollUntilDone();
Você pode cancelar a sondagem e a reserva chamando o cancelOperation
método no sondador que você criou.
await reservePoller.cancelOperation();
Comprar números de telefone de uma reserva
Use o beginPurchasePhoneNumbers
método para comprar os números de telefone de sua reserva. O reservationId
retornado de beginReservePhoneNumbers
é necessário.
beginPurchasePhoneNumbers
também é uma operação de execução prolongada.
const { reservationId } = phoneNumberReservation;
const purchasePoller = await client.beginPurchasePhoneNumbers(reservationId);
Para obter os resultados da compra, use o pollUntilDone
método no sondador de compra que você criou.
const results = await purchasePoller.pollUntilDone();
Solução de problemas
Próximas etapas
Dê uma olhada no diretório de exemplos para obter exemplos detalhados sobre como usar essa biblioteca.
Contribuição
Se você quiser contribuir com essa biblioteca, leia o guia de contribuição para saber como criar e testar o código.
Projetos relacionados
Azure SDK for JavaScript