Libreria client di Amministrazione delle comunicazioni di Azure per JavaScript - versione 1.0.0-beta.3
La libreria di amministrazione viene usata per la gestione di utenti e token per Servizi di comunicazione di Azure. Questa libreria offre anche funzionalità per l'amministrazione dei numeri di telefono.
I numeri di telefono acquisiti possono essere dotati di molte funzionalità, a seconda del paese, del tipo di numero e del piano telefonico. Esempi di funzionalità sono l'utilizzo in ingresso e in uscita degli SMS, l'utilizzo in ingresso e in uscita PSTN. I numeri di telefono possono anche essere assegnati a un bot tramite un URL webhook.
Introduzione
Prerequisiti
- Una sottoscrizione di Azure.
- Una risorsa di Servizi di comunicazione esistente. Se è necessario creare la risorsa, è possibile usare il portale di Azure o l'interfaccia della riga di comando di Azure.
Installazione
npm install @azure/communication-administration
Concetti chiave
Client
Il pacchetto di amministrazione espone due client. fornisce CommunicationIdentityClient
metodi per gestire gli utenti e i relativi token. Fornisce PhoneNumberAdministrationClient
metodi per gestire piani telefonici e numeri.
Panoramica dei piani telefonici
I piani telefonici sono disponibili in due tipi; Geografico e gratuito. I piani telefonici geografici sono piani telefonici associati a una posizione, i cui codici di area dei numeri di telefono sono associati al codice di area di una posizione geografica. Toll-Free piani telefonici sono piani telefonici non associati. Ad esempio, negli Stati Uniti, i numeri verdi possono essere dotati di codici di area, ad esempio 800 o 888.
Tutti i piani telefonici geografici all'interno dello stesso paese sono raggruppati in un gruppo di piani telefonici con un tipo di numero di telefono geografico. Tutti i piani telefonici Toll-Free nello stesso paese sono raggruppati in un gruppo di piani telefonici.
Ricerca e acquisizione di numeri
I numeri di telefono possono essere cercati nell'API di creazione della ricerca fornendo un ID piano telefonico, un codice di area e una quantità di numeri di telefono. La quantità fornita di numeri di telefono verrà riservata per dieci minuti. Questa ricerca di numeri di telefono può essere annullata o acquistata. Se la ricerca viene annullata, i numeri di telefono diventeranno disponibili per altri utenti. Se la ricerca viene acquistata, i numeri di telefono vengono acquisiti per le risorse di Azure.
Configurazione e assegnazione di numeri
I numeri di telefono possono essere assegnati a un URL di callback tramite l'API configura numero. Come parte della configurazione, è necessario un numero di telefono acquisito, un URL di callback e un ID applicazione.
Esempio
Authentication
È possibile ottenere una chiave e/o una stringa di connessione dalla risorsa di Servizi di comunicazione nel portale di Azure. Dopo aver ottenuto una chiave, è possibile autenticare CommunicationIdentityClient
e PhoneNumberAdministrationClient
con uno dei metodi seguenti:
Creare KeyCredential
con AzureKeyCredential
prima di inizializzare il client
import { AzureKeyCredential } from "@azure/core-auth";
import { CommunicationIdentityClient } from "@azure/communication-administration";
const credential = new AzureKeyCredential(KEY);
const client = new CommunicationIdentityClient(HOST, credential);
Uso di una stringa di connessione
import { PhoneNumberAdministrationClient } from "@azure/communication-administration";
const connectionString = `endpoint=HOST;accessKey=KEY`;
const client = new CommunicationIdentityClient(connectionString);
Se si usa una chiave per inizializzare il client, sarà necessario specificare anche l'endpoint appropriato. È possibile ottenere questo endpoint dalla risorsa di Servizi di comunicazione nel portale di Azure.
Utilizzo
CommunicationIdentityClient
Creazione di un'istanza di CommunicationIdentityClient
import { CommunicationIdentityClient } from "@azure/communication-administration";
const client = new CommunicationIdentityClient(CONNECTION_STRING);
Creazione di un nuovo utente
Usare il createUser
metodo per creare un nuovo utente.
const user = await client.createUser();
Creazione e aggiornamento di un token utente
Usare il issueToken
metodo per rilasciare o aggiornare un token per un utente esistente. Il metodo accetta anche un elenco di ambiti del token di comunicazione. Le opzioni di ambito includono:
-
chat
(Chat) -
pstn
(Rete telefonica commutata pubblica) -
voip
(Voice over IP)
let { token } = await client.issueToken(user, ["chat"]);
Per aggiornare il token utente, emettere un altro token con lo stesso utente.
{ token } = await client.issueToken(user, ["chat"]);
Revoca dei token per un utente
Usare il revokeTokens
metodo per revocare tutti i token emessi di un utente.
await client.revokeTokens(user);
revokeTokens
accetta un secondo argomento facoltativo, tokensValidFrom
. Se questa data viene specificata, revokeTokens
revoca tutti i token rilasciati prima. In caso contrario, tutti i token verranno revocati.
Eliminazione di un utente
Usare il deleteUser
metodo per eliminare un utente.
await client.deleteUser(user);
PhoneNumberAdministrationClient
Creazione di un'istanza di PhoneNumberAdministrationClient
import { CommunicationIdentityClient } from "@azure/communication-administration";
const client = new CommunicationIdentityClient(CONNECTION_STRING);
Ottenere paesi
Usare il listSupportedCountries
metodo per ottenere un elenco dei paesi supportati.
const countries = await client.listSupportedCountries();
for await (const country of countries) {
console.log(`Country code: ${country.countryCode}`);
console.log(`Country name: ${country.localizedName}`);
}
Recupero dei gruppi di piani telefonici
I gruppi di piani telefonici sono disponibili in due tipi, Geografico e Gratuito. Usare il listPhonePlanGroups
metodo per ottenerli.
const countryCode = "US";
const phonePlanGroups = await client.listPhonePlanGroups(countryCode);
for await (const phonePlanGroup of phonePlanGroups) {
console.log(`Phone plan group id: ${phonePlanGroup.phonePlanGroupId}`);
}
Recupero delle opzioni di posizione
Per i piani telefonici geografici, è possibile eseguire una query sulle località geografiche disponibili. Le opzioni di località sono strutturate come la gerarchia geografica di un paese. Ad esempio, gli Stati Uniti hanno stati e all'interno di ogni stato sono città.
Usare il getPhonePlanLocationOptions
metodo per ottenere le opzioni per una posizione.
const { locationOptions } = await client.getPhonePlanLocationOptions({
countryCode: "US",
phonePlanGroupId: "phonePlanGroupId",
phonePlanId: "phonePlanId"
});
console.log(`Got location options for: ${locationOptions.labelId}`);
Recupero dei codici di area
Il recupero dei codici di area per i piani telefonici geografici richiederà il set di query per le opzioni di posizione. È necessario includere la catena di posizioni geografiche che attraversano l'oggetto opzioni di posizione restituito da getPhonePlanLocationOptions
.
Usare il getAreaCodes
metodo per ottenere i codici di area per i piani telefonici geografici.
const { primaryAreaCodes } = await client.getAreaCodes({
locationType: "selection",
countryCode: "US",
phonePlanId: "phonePlanId",
locationOptionsQueries
});
Prenotazione dei numeri di telefono per l'acquisto
Usare il beginReservePhoneNumbers
metodo per cercare i numeri di telefono e prenotarli. L'operazione può richiedere molto tempo.
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
});
Per ottenere i risultati della prenotazione, usare il metodo nel pollUntilDone
poller creato.
const phoneNumberReservation = await reservePoller.pollUntilDone();
È possibile annullare il polling e la prenotazione chiamando il cancelOperation
metodo sul poller creato.
await reservePoller.cancelOperation();
Acquisto di numeri di telefono da una prenotazione
Usare il beginPurchasePhoneNumbers
metodo per acquistare i numeri di telefono dalla prenotazione. L'oggetto reservationId
restituito da beginReservePhoneNumbers
è obbligatorio.
beginPurchasePhoneNumbers
è anche un'operazione a esecuzione prolungata.
const { reservationId } = phoneNumberReservation;
const purchasePoller = await client.beginPurchasePhoneNumbers(reservationId);
Per ottenere i risultati dell'acquisto, usare il metodo nel pollUntilDone
poller di acquisto creato.
const results = await purchasePoller.pollUntilDone();
Risoluzione dei problemi
Passaggi successivi
Per esempi dettagliati su come usare questa libreria, vedere la directory degli esempi .
Contributo
Per contribuire a questa libreria, leggere la guida ai contributi per altre informazioni su come compilare e testare il codice.
Progetti correlati
Azure SDK for JavaScript