Biblioteca de cliente de Números de Telefone da Comunicação do Azure para JavaScript – versão 1.0.0
A biblioteca de números de telefone fornece capacidades para a administração de números de telefone.
Os números de telefone comprados podem ter muitas funcionalidades, consoante o país, o tipo de número e o tipo de atribuição. Exemplos de capacidades são a utilização de entrada e saída de SMS, a utilização de entrada e saída rtPC. Os números de telefone também podem ser atribuídos a um bot através de um URL de webhook.
Introdução
Pré-requisitos
- Uma subscrição do Azure.
- Um recurso existente do Communication Services. Se precisar de criar o recurso, pode utilizar o Portal do Azure, o Azure PowerShell ou a CLI do Azure.
Instalação
npm install @azure/communication-phone-numbers
Browser support (Suporte do browser)
Pacote JavaScript
Para utilizar esta biblioteca de cliente no browser, primeiro tem de utilizar um bundler. Para obter detalhes sobre como fazê-lo, veja a nossa documentação de agrupamento.
Conceitos-chave
O pacote de números de telefone expõe o PhoneNumbersClient
que fornece métodos para gerir números de telefone.
Tipos de número de telefone
Os números de telefone são apresentados em dois tipos; Geográfico e gratuito. Os números de telefone geográficos são números de telefone associados a uma localização, cujos códigos de área estão associados ao código de área de uma localização geográfica. Toll-Free números de telefone não estão associados a uma localização. Por exemplo, nos EUA, os números gratuitos podem ser fornecidos com códigos de área como 800 ou 888.
Todos os números de telefone geográficos no mesmo país são agrupados num grupo de planos telefónicos com um tipo de número de telefone Geográfico. Todos os Toll-Free números de telefone no mesmo país são agrupados num grupo de planos telefónicos.
Procurar e adquirir números
Os números de telefone podem ser pesquisados através da API de criação de pesquisa ao fornecer um tipo de número de telefone (geográfico ou gratuito), tipo de atribuição (pessoa ou aplicação), funcionalidades de chamadas e sms, um código de área e uma quantidade de números de telefone. A quantidade fornecida de números de telefone será reservada durante 15 minutos. Esta 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 são adquiridos para o recurso do Azure.
Configurar números de telefone
Os números de telefone podem ter uma combinação de capacidades. Podem ser configuradas para suportar chamadas de entrada e/ou de saída, ou nem se não utilizar o número de telefone para efetuar chamadas. O mesmo se aplica às capacidades de SMS.
É importante considerar o tipo de atribuição do seu número de telefone. Algumas capacidades estão restritas a um tipo de atribuição específico.
Exemplos
Autenticação
Para criar um objeto de cliente para aceder à API dos Serviços de Comunicação, precisará de um connection string
ou do endpoint
recurso dos Serviços de Comunicação e de um credential
. O cliente de Números de Telefone pode utilizar credenciais do Azure Active Directory ou uma credencial de chave de API para autenticar.
Pode obter uma chave e/ou cadeia de ligação a partir do recurso dos Serviços de Comunicação no portal do Azure. Também pode encontrar o ponto final do recurso dos Serviços de Comunicação no portal do Azure.
Assim que tiver uma chave, pode autenticar PhoneNumbersClient
com qualquer um dos seguintes métodos:
Utilizar uma cadeia de ligação
import { PhoneNumbersClient } from "@azure/communication-phone-numbers";
const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);
Utilizar uma chave de acesso com AzureKeyCredential
Se utilizar uma chave para inicializar o cliente, também terá de fornecer o ponto final adequado. Pode obter este ponto final a partir do recurso dos Serviços de Comunicação no portal do Azure. Assim que tiver uma chave e um ponto final, pode autenticar com o seguinte código:
import { AzureKeyCredential } from "@azure/core-auth";
import { PhoneNumbersClient } from "@azure/communication-phone-numbers";
const credential = new AzureKeyCredential("<key-from-resource>");
const client = new PhoneNumbersClient("<endpoint-from-resource>", credential);
Utilizar uma Credencial do Azure Active Directory
A autenticação de cadeia de ligação é utilizada na maioria dos exemplos, mas também pode autenticar com o Azure Active Directory com a biblioteca de Identidade do Azure. Para utilizar o fornecedor DefaultAzureCredential mostrado abaixo ou outros fornecedores de credenciais fornecidos com o SDK do Azure, instale o @azure/identity
pacote:
npm install @azure/identity
O @azure/identity
pacote fornece uma variedade de tipos de credenciais que a sua aplicação pode utilizar para o fazer. O README para @azure/identity
fornece mais detalhes e exemplos para começar.
import { DefaultAzureCredential } from "@azure/identity";
import { PhoneNumbersClient } from "@azure/communication-phone-numbers";
let credential = new DefaultAzureCredential();
const client = new PhoneNumbersClient("<endpoint-from-resource>", credential);
Utilização
As secções seguintes fornecem fragmentos de código que abrangem algumas das tarefas comuns com o cliente Azure Communication Services Números de Telefone. Os cenários abordados aqui consistem em:
- Procurar números de telefone disponíveis
- Comprar números de telefone a partir de uma pesquisa
- Libertar um número de telefone comprado
- Atualizar capacidades de número de telefone
- Obter um número de telefone comprado
- Listar números de telefone comprados
Procurar números de telefone disponíveis
Utilize o beginSearchAvailablePhoneNumbers
método para procurar números de telefone e reservá-los. Os números de telefone devolvidos são reservados durante 15 minutos e podem ser comprados durante este período ao fornecer o searchId
beginPurchasePhoneNumbers
método .
beginSearchAvailablePhoneNumbers
é uma operação de execução prolongada e devolve um poller.
import { PhoneNumbersClient } from "@azure/communication-phone-numbers";
const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);
async function main() {
const searchRequest = {
countryCode: "US",
phoneNumberType: "tollFree",
assignmentType: "application",
capabilities: {
sms: "outbound",
calling: "none"
},
quantity: 1
};
const searchPoller = await client.beginSearchAvailablePhoneNumbers(searchRequest);
// The search is underway. Wait to receive searchId.
const searchResults = searchPoller.pollUntilDone();
console.log(`Found phone number: ${searchResults.phoneNumbers[0]}`);
console.log(`searchId: ${searchResults.searchId}`);
}
main();
Comprar números de telefone a partir de uma pesquisa
Utilize o beginPurchasePhoneNumbers
método para comprar os números de telefone da pesquisa. Os números de telefone comprados serão atribuídos ao recurso dos Serviços de Comunicação utilizado ao iniciar o cliente. O searchId
devolvido de beginSearchAvailablePhoneNumbers
é obrigatório.
beginPurchasePhoneNumbers
é uma operação de execução prolongada e devolve um poller.
import { PhoneNumbersClient } from "@azure/communication-phone-numbers";
const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);
async function main() {
const searchRequest = {
countryCode: "US",
phoneNumberType: "tollFree",
assignmentType: "application",
capabilities: {
sms: "outbound",
calling: "none"
},
quantity: 1
};
const searchPoller = await client.beginSearchAvailablePhoneNumbers(searchRequest);
// The search is underway. Wait to receive searchId.
const { searchId, phoneNumbers } = searchPoller.pollUntilDone();
const purchasePoller = await client.beginPurchasePhoneNumbers(searchId);
// Purchase is underway.
await purchasePoller.pollUntilDone();
console.log(`Successfully purchased ${phoneNumbers[0]}`);
}
main();
Libertar um número de telefone comprado
Utilize o beginReleasePhoneNumber
método para libertar um número de telefone comprado anteriormente. Os números de telefone lançados deixarão de estar associados ao recurso dos Serviços de Comunicação e não estarão disponíveis para utilização com outras operações (por exemplo, SMS) do recurso. O número de telefone que está a ser libertado é obrigatório.
beginReleasePhoneNumber
é uma operação de execução prolongada e devolve um poller.
import { PhoneNumbersClient } from "@azure/communication-phone-numbers";
const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);
async function main() {
const phoneNumberToRelease = "<phone-number-to-release>";
const releasePoller = await client.beginReleasePhoneNumber(phoneNumberToRelease);
// Release is underway.
await releasePoller.pollUntilDone();
console.log("Successfully release phone number.");
}
main();
Atualizar capacidades de número de telefone
Utilize o beginUpdatePhoneNumberCapabilities
método para atualizar as capacidades de um número de telefone comprado. Os números de telefone podem ser configurados para suportar chamadas de entrada e/ou saída e sms, ou nenhum dos dois.
beginUpdatePhoneNumberCapabilities
é uma operação de execução prolongada e devolve um poller.
import { PhoneNumbersClient } from "@azure/communication-phone-numbers";
const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);
async function main() {
const phoneNumberToUpdate = "<phone-number-to-update>";
// This will update phone number to send and receive sms, but only send calls.
const updateRequest = {
sms: "inbound+outbound",
calling: "outbound"
};
const updatePoller = await client.beginUpdatePhoneNumberCapabilities(
phoneNumberToUpdate,
updateRequest
);
// Update is underway.
const { capabilities } = await updatePoller.pollUntilDone();
console.log(`These are the update capabilities: ${capabilities}`);
}
main();
Obter um número de telefone comprado
Utilize o getPurchasedPhoneNumber
método para obter informações sobre um número de telefone comprado. Estas informações incluem o tipo, capacidades, custo e data de compra do número de telefone.
import { PhoneNumbersClient } from "@azure/communication-phone-numbers";
const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);
async main function() {
const phoneNumberToGet = "<phone-number-to-get>";
const phoneNumber = await client.getPurchasedPhoneNumber(phoneNumberToGet);
console.log(`The id is the same as the phone number: ${phoneNumber.id}`);
console.log(`Phone number type is ${phoneNumber.phoneNumberType}`);
}
main();
Listar números de telefone comprados
Utilize o listPurchasedPhoneNumbers
método para analisar todos os números de telefone comprados.
import { PhoneNumbersClient } from "@azure/communication-phone-numbers";
const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);
async main function() {
const phoneNumbers = await client.listPurchasedPhoneNumbers();
for await (const phoneNumber of phoneNumbers) {
console.log(`The id is the same as the phone number: ${phoneNumber.id}`);
console.log(`Phone number type is ${phoneNumber.phoneNumberType}`);
}
}
main();
Resolução de problemas
Passos seguintes
Veja o diretório de exemplos para obter exemplos detalhados sobre como utilizar esta biblioteca.
Contribuir
Se quiser contribuir para esta biblioteca, leia o guia de contribuição para saber mais sobre como criar e testar o código.
Projetos relacionados