azure-sdk-for-js/sdk/communication/communication-recipient-ver...
Jeremy Meng 3a68e456b2 [Samples] update "src/**.ts" to "src/**/*.ts" in tsconfig.json
Previously dev-tool has been fixed to generate correct include path in samples
tsconfig.json but samples were not updated.

This PR fixes the samples tsconfig.json in one run; otherwise with the recent
branch protection policy changes, when individual packages re-publish samples,
js-core team would have to approve the tsconfig.json changes.

***NO_CI***
2024-07-24 13:53:00 +00:00
..
review [EngSys] upgrade dev dependency `typescript` version to `~5.5.3` 2024-07-03 22:24:35 +00:00
samples/v1-beta [Samples] update "src/**.ts" to "src/**/*.ts" in tsconfig.json 2024-07-24 13:53:00 +00:00
samples-dev [Communication] Add SDK for recipient verification (verified recipients) (#25112) 2023-03-10 09:48:22 -08:00
src [EngSys] upgrade to prettier v3 2024-01-10 18:45:01 -05:00
swagger [Communication] Add SDK for recipient verification (verified recipients) (#25112) 2023-03-10 09:48:22 -08:00
test/public Fix Communication Rooms Readme Issue And Push Recordings In Communication Library (#28607) 2024-06-03 13:54:16 +08:00
.nycrc [Communication] Add SDK for recipient verification (verified recipients) (#25112) 2023-03-10 09:48:22 -08:00
CHANGELOG.md [communication] Add header to changelog (#30207) 2024-06-27 10:13:28 -07:00
README.md [engsys] upgrade dev dependency eslint-plugin-markdown to ^5.0.0 (#29697) 2024-05-16 00:38:36 +00:00
api-extractor.json [Communication] Add SDK for recipient verification (verified recipients) (#25112) 2023-03-10 09:48:22 -08:00
assets.json Fix Communication Rooms Readme Issue And Push Recordings In Communication Library (#28607) 2024-06-03 13:54:16 +08:00
karma.conf.js [Communication] Add SDK for recipient verification (verified recipients) (#25112) 2023-03-10 09:48:22 -08:00
package.json [EngSys] upgrade dev dependency `typescript` version to `~5.5.3` 2024-07-03 22:24:35 +00:00
sample.env [Communication] Add SDK for recipient verification (verified recipients) (#25112) 2023-03-10 09:48:22 -08:00
tests.yml replace all tests.yml usage w/ extends to archetype-sdk-tests.yml ***NO_CI*** 2024-03-11 14:13:06 -07:00
tsconfig.json [EngSys] remove tsconfig.package.json 2024-07-16 13:27:25 +00:00

README.md

Azure Communication Recipient Verification client library for JavaScript

The Recipient Verification library allows users to verify the phone number of recipients before sending messages or making calls to the phone number.

Getting started

Prerequisites

Installing

npm install @azure-tools/communication-recipient-verification

Browser support

JavaScript Bundle

To use this client library in the browser, first you need to use a bundler. For details on how to do this, please refer to our bundling documentation.

Key concepts

Examples

Authentication

To create a client object to access the Communication Services API, you will need a connection string or the endpoint of your Communication Services resource and a credential. The Recipient Verification client can use either Azure Active Directory credentials or an API key credential to authenticate.

You can get a key and/or connection string from your Communication Services resource in the Azure Portal. You can also find the endpoint for your Communication Services resource in the Azure Portal.

Once you have a key, you can authenticate the RecipientVerificationClient with any of the following methods:

Using a connection string

const {
  RecipientVerificationClient,
} = require("@azure-tools/communication-recipient-verification");
const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new RecipientVerificationClient(connectionString);

Using an access key with AzureKeyCredential

If you use a key to initialize the client you will also need to provide the appropriate endpoint. You can get this endpoint from your Communication Services resource in Azure Portal. Once you have a key and endpoint, you can authenticate with the following code:

const { AzureKeyCredential } = require("@azure/core-auth");
const {
  RecipientVerificationClient,
} = require("@azure-tools/communication-recipient-verification");
const credential = new AzureKeyCredential("<key-from-resource>");
const client = new RecipientVerificationClient("<endpoint-from-resource>", credential);

Using an Azure Active Directory Credential

Connection string authentication is used in most of the examples, but you can also authenticate with Azure Active Directory using the Azure Identity library. To use the DefaultAzureCredential provider shown below, or other credential providers provided with the Azure SDK, please install the @azure/identity package:

npm install @azure/identity

The @azure/identity package provides a variety of credential types that your application can use to do this. The README for @azure/identity provides more details and samples to get you started.

const { DefaultAzureCredential } = require("@azure/identity");
const {
  RecipientVerificationClient,
} = require("@azure-tools/communication-recipient-verification");

let credential = new DefaultAzureCredential();
const client = new RecipientVerificationClient("<endpoint-from-resource>", credential);

Usage

The following sections provide code snippets that cover some of the common tasks using the Azure Communication Services Recipient Verification Client. The scenarios that are covered here consist of:

Request phone number verification code

import { RecipientVerificationClient } from "@azure-tools/communication-recipient-verification";
const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new RecipientVerificationClient(connectionString);

async function main() {
  // body of the request
  const VerificationRequest = {
    identity: "+11234567890",
    channel: "sms",
  };

  // get the verification status
  var status = await client.requestVerification(VerificationRequest);
  console.log(status);
}

main();

Verify phone number

import { RecipientVerificationClient } from "@azure-tools/communication-recipient-verification";
const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new RecipientVerificationClient(connectionString);

async function main() {
  // id that is used to reference users phone number
  const verificationId = "7e5dd7e1-5203-41ab-960e-65c1eb804fc6";

  // body of the request
  const VerificationRequest = {
    verificationCode: "1234567",
  };

  // verifying your phone number
  const status = await client.verifyIdentity(verificationId, VerificationRequest);
  console.log(status);
}

main();

Remove verified number

import { RecipientVerificationClient } from "@azure-tools/communication-recipient-verification";
const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new RecipientVerificationClient(connectionString);

async function main() {
  // id that is used to reference users phone number
  const verificationId = "4d313ff0-3aeb-477e-8c15-7c9a893e8999";

  // delete verification for a resource
  await client.deleteVerification(verificationId);
}

main();

Get verified numbers

import { RecipientVerificationClient } from "@azure-tools/communication-recipient-verification";
const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new RecipientVerificationClient(connectionString);

async function main() {
  // get all verifications for a resource
  var verifications = await client.getVerifications();

  // print all verifications
  for await (const verification of verifications) {
    console.log(verification);
  }
}

main();

Troubleshooting

Next steps

Please take a look at the samples directory for detailed examples on how to use this library.

Contributing

If you'd like to contribute to this library, please read the contributing guide to learn more about how to build and test the code.

Impressions