JavaScript용 Azure RoomsApi 클라이언트 라이브러리 - 버전 1.1.0

이 패키지에는 Azure RoomsApi 클라이언트에 대한 등형 SDK(Node.js 및 브라우저에서 모두 실행됨)가 포함되어 있습니다.

Communication Rooms 클라이언트

소스 코드 | 패키지(NPM) | 샘플

시작

현재 지원되는 환경

사전 요구 사항

  • Azure 구독.
  • 기존 Communication Services 리소스입니다. 리소스를 만들어야 하는 경우 Azure Portal, [Azure PowerShell][azure_powershell] 또는 Azure CLI를 사용할 수 있습니다.

JavaScript 번들

브라우저에서 이 클라이언트 라이브러리를 사용하려면 먼저 번들러를 사용해야 합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 번들링 설명서를 참조하세요.

설치

npm install @azure/communication-rooms

주요 개념

RoomsApiClient

RoomsClient 는 Azure RoomsApi 클라이언트 라이브러리를 사용하는 개발자를 위한 기본 인터페이스입니다. 이 클라이언트 개체의 메서드를 탐색하여 액세스할 수 있는 Azure RoomsApi 서비스의 다양한 기능을 이해합니다.

예제

인증

Azure Portal의 Communication Services 리소스에서 키 및/또는 연결 문자열 가져올 수 있습니다. 키가 있으면 다음 방법 중 원하는 방법으로 를 인증 RoomsClient 할 수 있습니다.

KeyCredential 클라이언트를 초기화하기 전에 를 AzureKeyCredential 사용하여 Create

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 Portal의 Communication Services 리소스에서 이 엔드포인트를 가져올 수 있습니다.

사용량

회의실 만들기

회의실을 만들려면 메서드를 호출합니다 createRoom . 모든 설정은 선택 사항입니다.

가 제공되지 않으면 validFrom 현재 날짜/시간으로 기본 설정됩니다. validUntil 가 제공되지 않으면 기본값은 입니다validFrom + 180 days.

를 정의할 participants때 가 지정되지 않으면 role 기본적으로 이 됩니다 attendee .

1.1.0 릴리스 PstnDialOutEnabled 부터 속성이 추가되어 회의실에서 PSTN 전화 걸기 기능을 사용하거나 사용하지 않도록 설정합니다. 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());
let validForDays = 10;
let validUntil = new Date(validFrom.getTime());
validUntil.setDate(validFrom.getDate() + validForDays);
let 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);

여기에서 CommunicationIdentityClient 찾기

회의실 업데이트

회의실의 validFromvalidUntil 설정을 업데이트하려면 메서드를 updateRoom 사용합니다.

1.1.0 릴리스 PstnDialOutEnabled 부터 속성이 추가되어 회의실에서 PSTN 전화 걸기 기능을 사용하거나 사용하지 않도록 설정합니다.

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 = [
  {
    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로 설정합니다. 또는 @azure/logger에서 setLogLevel을 호출하여 런타임에 로깅을 사용하도록 설정할 수 있습니다.

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

로그를 사용하는 방법에 대한 자세한 내용은 @azure/logger package docs를 참조하세요.

다음 단계

이 라이브러리를 사용하는 방법에 대한 자세한 예제는 샘플 디렉터리를 참조하세요.

참여

이 라이브러리에 기여하려면 기여 가이드 를 참조하여 코드를 빌드하고 테스트하는 방법에 대해 자세히 알아보세요.

Impressions