Поделиться через


Клиентская библиотека Azure Communication SMS для JavaScript версии 1.1.0

Службы Azure Communication SMS предоставляют разработчикам возможность отправлять SMS-сообщения с номера телефона, который можно приобрести через Службы коммуникации.

Начало работы

Предварительные требования

  • Подписка Azure.
  • Существующий ресурс Служб коммуникации. Если необходимо создать ресурс, можно использовать портал Azure, Azure PowerShell или Azure CLI.
  • Номер телефона, назначенный ресурсу Служб коммуникации. Инструкции по добавлению номера телефона в ресурс Служб коммуникации см. в этой статье.

Установка

npm install @azure/communication-sms

Как получить номер телефона

Номера телефонов можно получить и назначить ресурсу Служб коммуникации на портале Azure. Инструкции по получении номера телефона с помощью портала Azure можно найти здесь.

Вы также можете получить номер телефона с помощью @azure/communication-phone-numbers пакета. Инструкции по использованию пакета можно найти в файле сведений пакета.

Поддержка браузеров

Пакет JavaScript

Чтобы использовать эту клиентную библиотеку в браузере, сначала необходимо использовать средство пакетной установки. Дополнительные сведения о том, как это сделать, см. в документации по объединениям.

Основные понятия

SmsClient

SmsClient — это основной интерфейс для разработчиков, использующих эту клиентную библиотеку. Он предоставляет асинхронный метод для отправки SMS-сообщений.

Примеры

Аутентификация

Ключ и (или) строка подключения можно получить из ресурса Служб коммуникации на портале Azure. Получив ключ, вы можете выполнить проверку подлинности с помощью любого из следующих методов:

Использование строка подключения

import { SmsClient } from "@azure/communication-sms";

const connectionString = `endpoint=https://<resource-name>.communication.azure.com/;accessKey=<Base64-Encoded-Key>`;
const client = new SmsClient(connectionString);

Создание учетных данных с помощью AzureKeyCredential

import { AzureKeyCredential } from "@azure/core-auth";
import { SmsClient } from "@azure/communication-sms";

const endpoint = "https://<resource-name>.communication.azure.com";
const credential = new AzureKeyCredential("<Base64-Encoded-Key>");
const client = new SmsClient(endpoint, credential);

Использование управляемого удостоверения Azure Active Directory

Проверка подлинности с помощью ключа API клиента используется в большинстве примеров, но вы также можете пройти проверку подлинности в Azure Active Directory с помощью библиотеки удостоверений Azure. Чтобы использовать поставщик DefaultAzureCredential, показанный ниже, или другие поставщики учетных данных, предоставляемые вместе с пакетом AZURE SDK, установите @azure/identity пакет :

npm install @azure/identity

Пакет @azure/identity предоставляет различные типы учетных данных, которые приложение может использовать для этого. Файл сведений для @azure/identity содержит дополнительные сведения и примеры для начала работы. AZURE_CLIENT_SECRET, AZURE_CLIENT_ID и AZURE_TENANT_ID переменные среды необходимы для создания объекта DefaultAzureCredential.

import { DefaultAzureCredential } from "@azure/identity";
import { SmsClient } from "@azure/communication-sms";

const endpoint = "https://<resource-name>.communication.azure.com";
let credential = new DefaultAzureCredential();
const client = new SmsClient(endpoint, credential);

Отправка группового текстового сообщения

Чтобы отправить SMS-сообщение, вызовите функцию send из SmsClient. Необходимо передать SmsSendRequest объект . Можно также добавить объект параметров pass, чтобы указать, следует ли включить отчет о доставке, и задать настраиваемые теги для отчета. Возвращается массив SmsSendResult . Флаг successful используется для проверки успешности отправки каждого отдельного сообщения.

const sendResults = await client.send(
  {
    from: "<from-phone-number>", // Your E.164 formatted phone number used to send SMS
    to: ["<to-phone-number-1>", "<to-phone-number-2>"], // The list of E.164 formatted phone numbers to which message is being sent
    message: "Weekly Promotion!" // The message being sent
  },
  {
    enableDeliveryReport: true,
    tag: "marketing"
  }
);

for (const sendResult of sendResults) {
  if (sendResult.successful) {
    console.log("Success: ", sendResult);
  } else {
    console.error("Something went wrong when trying to send this message: ", sendResult);
  }
}

Устранение неполадок

При сбое запроса к серверу при операциях SMS создается исключение. Исключения не будут создаваться, если ошибка вызвана отдельным сообщением, только в том случае, если что-то завершается сбоем с общим запросом. Используйте флаг для successful проверки каждого отдельного результата, чтобы проверить, было ли отправлено сообщение.

try {
  const sendResults = await client.send({
    from: "<from-phone-number>", // Your E.164 formatted phone number used to send SMS
    to: ["<to-phone-number-1>", "<to-phone-number-2>"], // The list of E.164 formatted phone numbers to which message is being sent
    message: "Hello World via SMS!" // The message being sent
  });
  for (const sendResult of sendResults) {
    if (sendResult.successful) {
      console.log("Success: ", sendResult);
    } else {
      console.error("Something went wrong when trying to send this message: ", sendResult);
    }
  }
} catch (e) {
  console.error(e.message);
}

Дальнейшие действия

Участие

Если вы хотите вносить изменения в эту библиотеку, ознакомьтесь с руководством по внесению изменений, в котором содержатся сведения о создании и тестировании кода.

Просмотры