JavaScript용 Azure RoomsApi 클라이언트 라이브러리 - 버전 1.1.0
이 패키지에는 Azure RoomsApi 클라이언트에 대한 등형 SDK(Node.js 및 브라우저에서 모두 실행됨)가 포함되어 있습니다.
Communication Rooms 클라이언트
시작
현재 지원되는 환경
- Node.js의 LTS 버전
- Safari, Chrome, Edge 및 Firefox의 최신 버전입니다.
사전 요구 사항
- 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 찾기
회의실 업데이트
회의실의 validFrom
및 validUntil
설정을 업데이트하려면 메서드를 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를 참조하세요.
다음 단계
이 라이브러리를 사용하는 방법에 대한 자세한 예제는 샘플 디렉터리를 참조하세요.
참여
이 라이브러리에 기여하려면 기여 가이드 를 참조하여 코드를 빌드하고 테스트하는 방법에 대해 자세히 알아보세요.
관련된 프로젝트
Azure SDK for JavaScript