Azure Communication Phone Numbers-klientbibliotek för JavaScript – version 1.0.0
Telefonnummerbiblioteket tillhandahåller funktioner för telefonnummeradministration.
Köpta telefonnummer kan ha många funktioner, beroende på land, nummertyp och tilldelningstyp. Exempel på funktioner är inkommande och utgående SMS-användning, inkommande och utgående PSTN-användning. Telefonnummer kan också tilldelas till en robot via en webhook-URL.
Komma igång
Förutsättningar
- En Azure-prenumeration.
- En befintlig Communication Services-resurs. Om du behöver skapa resursen kan du använda Azure Portal, Azure PowerShell eller Azure CLI.
Installation
npm install @azure/communication-phone-numbers
Stöd för webbläsare
JavaScript-paket
Om du vill använda det här klientbiblioteket i webbläsaren måste du först använda en bundler. Mer information om hur du gör detta finns i vår paketeringsdokumentation.
Viktiga begrepp
Telefonnummerpaketet visar vilka PhoneNumbersClient
metoder som kan användas för att hantera telefonnummer.
Telefonnummertyper
Telefonnummer finns i två typer; Geografisk och avgiftsfri. Geografiska telefonnummer är telefonnummer som är associerade med en plats, vars riktnummer är associerade med riktnumret för en geografisk plats. Toll-Free telefonnummer är inte kopplade till en plats. I USA kan till exempel avgiftsfria nummer komma med riktnummer som 800 eller 888.
Alla geografiska telefonnummer i samma land grupperas i en telefonplansgrupp med en geografisk telefonnummertyp. Alla Toll-Free telefonnummer i samma land grupperas i en telefonplansgrupp.
Söka efter och hämta nummer
Telefonnummer kan sökas igenom API:et för sökskapande genom att ange en telefonnummertyp (geografisk eller avgiftsfri), tilldelningstyp (person eller program), samtals- och sms-funktioner, riktnummer och antal telefonnummer. Den angivna mängden telefonnummer reserveras i 15 minuter. Den här sökningen av telefonnummer kan antingen avbrytas eller köpas. Om sökningen avbryts blir telefonnumren tillgängliga för andra. Om sökningen köps hämtas telefonnumren för Azure-resursen.
Konfigurera telefonnummer
Telefonnummer kan ha en kombination av funktioner. De kan konfigureras för att stödja inkommande och/eller utgående samtal, eller inte om du inte använder telefonnumret för att ringa. Detsamma gäller för sms-funktioner.
Det är viktigt att tänka på tilldelningstypen för ditt telefonnummer. Vissa funktioner är begränsade till en viss tilldelningstyp.
Exempel
Autentisering
Om du vill skapa ett klientobjekt för åtkomst till Communication Services-API:et endpoint
behöver du en connection string
eller av din Communication Services-resurs och en credential
. Phone Numbers-klienten kan använda antingen Azure Active Directory-autentiseringsuppgifter eller en API-nyckelautentiseringsuppgift för att autentisera.
Du kan hämta en nyckel och/eller anslutningssträng från din Communication Services-resurs i Azure-portalen. Du hittar även slutpunkten för din Communication Services-resurs i Azure-portalen.
När du har en nyckel kan du autentisera PhoneNumbersClient
med någon av följande metoder:
Använda en anslutningssträng
import { PhoneNumbersClient } from "@azure/communication-phone-numbers";
const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);
Använda en åtkomstnyckel med AzureKeyCredential
Om du använder en nyckel för att initiera klienten måste du också ange lämplig slutpunkt. Du kan hämta den här slutpunkten från din Communication Services-resurs i Azure-portalen. När du har en nyckel och en slutpunkt kan du autentisera med följande kod:
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);
Använda en Azure Active Directory-autentiseringsuppgift
Autentisering med anslutningssträngar används i de flesta av exemplen, men du kan också autentisera med Azure Active Directory med hjälp av Azure Identity-biblioteket. Om du vill använda DefaultAzureCredential-providern som visas nedan eller andra leverantörer av autentiseringsuppgifter som medföljer Azure SDK installerar @azure/identity
du paketet:
npm install @azure/identity
Paketet @azure/identity
innehåller en mängd olika typer av autentiseringsuppgifter som programmet kan använda för att göra detta.
README för @azure/identity
innehåller mer information och exempel för att komma igång.
import { DefaultAzureCredential } from "@azure/identity";
import { PhoneNumbersClient } from "@azure/communication-phone-numbers";
let credential = new DefaultAzureCredential();
const client = new PhoneNumbersClient("<endpoint-from-resource>", credential);
Användning
Följande avsnitt innehåller kodfragment som täcker några av de vanliga uppgifterna med hjälp av klienten Azure Communication Services Telefonnummer. De scenarier som beskrivs här består av:
- Sök efter tillgängliga telefonnummer
- Köpa telefonnummer från en sökning
- Släpp ett köpt telefonnummer
- Uppdatera funktioner för telefonnummer
- Hämta ett köpt telefonnummer
- Lista köpta telefonnummer
Sök efter tillgängliga telefonnummer
beginSearchAvailablePhoneNumbers
Använd metoden för att söka efter telefonnummer och reservera dem. De telefonnummer som returneras är reserverade i 15 minuter och kan köpas under den här perioden genom att tillhandahålla searchId
metoden.beginPurchasePhoneNumbers
beginSearchAvailablePhoneNumbers
är en tidskrävande åtgärd och returnerar en 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();
Köpa telefonnummer från en sökning
Använd metoden för att köpa telefonnummer från sökningen beginPurchasePhoneNumbers
. Köpta telefonnummer tilldelas till den Communication Services-resurs som används när klienten initieras. Den searchId
som returneras från beginSearchAvailablePhoneNumbers
krävs.
beginPurchasePhoneNumbers
är en tidskrävande åtgärd och returnerar en 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();
Släpp ett köpt telefonnummer
beginReleasePhoneNumber
Använd metoden för att släppa ett tidigare köpt telefonnummer. Utgivna telefonnummer kommer inte längre att associeras med Communication Services-resursen och kommer inte att vara tillgängliga för användning med andra åtgärder (t.ex. SMS) för resursen. Telefonnumret som släpps krävs.
beginReleasePhoneNumber
är en tidskrävande åtgärd och returnerar en 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();
Uppdatera funktioner för telefonnummer
beginUpdatePhoneNumberCapabilities
Använd metoden för att uppdatera funktionerna i ett köpt telefonnummer. Telefonnummer kan konfigureras för att stödja inkommande och/eller utgående samtal och sms, eller ingetdera.
beginUpdatePhoneNumberCapabilities
är en tidskrävande åtgärd och returnerar en 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();
Hämta ett köpt telefonnummer
getPurchasedPhoneNumber
Använd metoden för att hämta information om ett köpt telefonnummer. Den här informationen omfattar telefonnumrets typ, funktioner, kostnad och inköpsdatum.
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();
Lista köpta telefonnummer
listPurchasedPhoneNumbers
Använd metoden för att bläddra igenom alla köpta telefonnummer.
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();
Felsökning
Nästa steg
Ta en titt på exempelkatalogen för detaljerade exempel på hur du använder det här biblioteket.
Bidra
Om du vill bidra till det här biblioteket kan du läsa bidragsguiden för att lära dig mer om hur du skapar och testar koden.
Relaterade projekt