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


Клиентская библиотека Azure RoomsApi для JavaScript версии 1.1.1

Этот пакет содержит isomorphic SDK (выполняется как в Node.js, так и в браузерах) для клиента Azure RoomsApi.

Клиент комнат коммуникации

примерыпакета(NPM)

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

Поддерживаемые в настоящее время среды

Необходимые условия

  • подписка Azure.
  • Существующий ресурс служб коммуникации. Если необходимо создать ресурс, можно использовать портал Azure, [Azure PowerShell][azure_powershell], Azure CLI.

Пакет JavaScript

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

Установка

npm install @azure/communication-rooms

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

RoomsApiClient

RoomsClient — это основной интерфейс для разработчиков с помощью клиентской библиотеки Azure RoomsApi. Изучите методы этого клиентского объекта, чтобы понять различные функции службы Azure RoomsApi, к которым можно получить доступ.

Примеры

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

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

Создание KeyCredential с AzureKeyCredential перед инициализацией клиента

import { AzureKeyCredential } from "@azure/core-auth";
import { RoomsClient } from "@azure/communication-rooms";

const credential = new AzureKeyCredential(KEY);
const client = new RoomsClient(ENDPOINT, credential);

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

import { RoomsClient } from "@azure/communication-rooms";

const connectionString = `endpoint=ENDPOINT;accessKey=KEY`;
const client = new RoomsClient(connectionString);

Использование TokenCredential

import { DefaultAzureCredential } from "@azure/identity";
import { RoomsClient } from "@azure/communication-rooms";

const credential = new DefaultAzureCredential();
const client = new RoomsClient(ENDPOINT, credential);

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

Употребление

Создание комнаты

Чтобы создать комнату, вызовите метод createRoom. Все параметры являются необязательными.

Если validFrom не указан, по умолчанию используется текущая дата и время. Если validUntil не указан, значение по умолчанию — validFrom + 180 days.

При определении participants, если role не указан, по умолчанию он будет attendee.

Начиная с выпуска 1.1.0, PstnDialOutEnabled свойство добавляется для включения или отключения функции ТСОП dial-Out в комнате. PstnDialOutEnabled является необязательным свойством. Если PstnDialOutEnabled не указан, значение по умолчанию для PstnDialOutEnabled равно false.

// create users with CommunicationIdentityClient
const identityClient = new CommunicationIdentityClient(connectionString);
const user1 = await identityClient.createUserAndToken(["voip"]);

// create RoomsClient
const roomsClient: RoomsClient = new RoomsClient(CONNECTION_STRING);

const validFrom = new Date(Date.now());
const validForDays = 10;
const validUntil = new Date(validFrom.getTime());
validUntil.setDate(validFrom.getDate() + validForDays);
const pstnDialOutEnabled = true;

// options payload to create a room
const createRoomOptions: CreateRoomOptions = {
  validFrom,
  validUntil,
  pstnDialOutEnabled,
  participants: [
    {
      id: user1.user,
      role: "Attendee",
    },
  ],
};

// create room
const room = await roomsClient.createRoom(createRoomOptions);

Find CommunicationIdentityClient здесь

Обновление комнаты

Чтобы обновить параметры validFrom и validUntil комнаты, используйте метод updateRoom.

Начиная с выпуска 1.1.0, PstnDialOutEnabled свойство добавляется для включения или отключения функции ТСОП dial-Out в комнате.

validForDays = 60;
validUntil.setDate(validFrom.getDate() + validForDays);
pstnDialOutEnabled = false;

const updateRoomOptions: UpdateRoomOptions = {
  validFrom,
  validUntil,
  pstnDialOutEnabled,
};

// update the room using the room id from the creation operation
const updatedRoom = await roomsClient.updateRoom(room.id, updateRoomOptions);

Получение комнаты

Чтобы получить комнату, используйте метод getRoom.

const roomId = "ROOM_ID";
room = await roomsClient.getRoom(roomId);

Вывод списка комнат

Вывод списка всех комнат с помощью метода listRooms.

const roomsList = await roomsClient.listRooms();
for await (const currentRoom of roomsList) {
  // access room data
  console.log(`The room id is ${currentRoom.id}.`);
}

Добавление или обновление участников

Чтобы добавить новых участников или обновить существующих участников, используйте метод addOrUpdateParticipants.

const user2 = await identityClient.createUserAndToken(["voip"]);
const updateParticipantsList: RoomParticipantPatch[] = [
  {
    id: user1.user,
    role: "Presenter",
  },
  {
    id: user2.user,
  },
];

// run addOrUpdate operation
await roomsClient.addOrUpdateParticipants(room.id, updateParticipantsList);

Удаление участников

Чтобы удалить участников, вызовите метод removeParticipants.

const participantsToRemove = [user1.user, user2.user];
await roomsClient.removeParticipants(room.id, participantsToRemove);

Получение участников в комнате

Чтобы перечислить всех участников в комнате, вызовите метод listParticipants.

const participantsList = await roomsClient.listParticipants(room.id);
for await (const participant of participantsList) {
  // access participant data
  console.log(`The participant's role is ${participant.role}.`);
}

Удаление комнаты

Используйте метод deleteRoom для удаления комнаты.

await roomsClient.deleteRoom(room.id);

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

Лесозаготовка

Включение ведения журнала может помочь выявить полезные сведения о сбоях. Чтобы просмотреть журнал HTTP-запросов и ответов, задайте для переменной среды AZURE_LOG_LEVEL значение info. Кроме того, ведение журнала можно включить во время выполнения путем вызова setLogLevel в @azure/logger:

const { setLogLevel } = require("@azure/logger");
setLogLevel("info");

Дополнительные инструкции по включению журналов см. в документации по пакету @azure/loger.

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

Ознакомьтесь с примерами каталога, чтобы получить подробные примеры использования этой библиотеки.

Способствует

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

впечатлений