Kakao i Connect Live::Kakao i Connect Live 2.0::API 레퍼런스::Admin API

페이지 이동경로

Admin API

커넥트 라이브는 라이브 스트리밍 서비스를 개발하는데 필요한 클라이언트 개발 환경을 제공하며, 대부분의 기능을 SDK로 수행할 수 있습니다. 하지만 인증이나 Room에 대한 정보 조회 및 처리, Room에 대한 메시징 처리와 같이 일부 서비스의 서버에서 커넥트 라이브 서버에 접속하여 정보를 확인하거나 명령을 내려야 하는 경우가 존재합니다. 본 문서는 고객사의 관리자가 이런 작업을 처리할 수 있도록 도와주는 Admin API의 사용 방법을 설명합니다. Admin API는 Provision API와 Room API로 구분됩니다.

Admin API
구분 항목 설명
Provision API Provision Admin API를 사용하기 위한 Admin Token 발급 API
Room API Room.DestroyRoom Room 삭제
Room.ListParticipants 참여자 목록 조회
Room.KickParticipant 특정 참여자 강제 퇴장
Room.InactiveStream 특정 참여자의 스트림 송출 중단
Room.ListRooms 특정 서비스 ID의 Room 목록을 조회

Provision

Provision API는 Admin API를 사용하기 위한 Admin Token을 발급하는 API입니다. API 요청과 응답은 2단계로 이루어져 있으며, JSON-RPC 2.0을 사용합니다. 1차와 2차에 걸친 API Transaction은 5초 안에 이루어져야 합니다. Admin Token을 발급하기 위해서는 일반 Service Secret이 아닌 Admin Secret을 사용해야 합니다. Admin Secret은 카카오 i 커넥트 라이브 콘솔에서 발급받을 수 있습니다.

Step 1

Request(Step 1)

Provision API의 1단계 요청은 다음과 같습니다.

Request Syntax

코드예제CURL 요청 Syntax(Step 1)

    curl -X POST https://icl2-provisioning-ap2.k9ertc.io/api/rpc \
    -H 'Content-Type: application/json' \
    -d '{
    "jsonrpc": "2.0",
    "id": "1",
    "method": "Provision",
    "params": {
        "version": "1.0",
        "serviceId": {YOUR_SERVICE_ID},
        "scheme": {SERVICE_ID_SCHEME}
    }
    }'

API 호출 방식
API 호출 방식
메서드 요청 URL
POST https://icl2-provisioning-ap2.k9ertc.io/api/rpc
Request Header
Provision Request Header
파라미터 타입 필수 여부 설명
Content-Type String 필수 JSON-RPC 2.0을 사용하기 위한 헤더
- application/json으로 고정
Request Body
Provision Request Body
파라미터 타입 필수 여부 설명
jsonrpc String 필수 JSON-RPC 2.0 버전
- 2.0으로 고정
id String 필수 JSON-RPC 2.0의 Transaction ID
- 1로 고정
method String 필수 JSON-RPC 2.0의 메서드명
- Provision으로 고정
Object 필수 JSON-RPC 2.0의 파라미터
version String 선택 사용하고자 하는 Provisioning API 버전
- 기본값: 1.0
serviceId String 필수 서비스를 사용하기 위한 서비스 ID
- 카카오 i 커넥트 라이브 콘솔에서 발급
scheme String 필수 해당 서비스 ID의 인증 방식
- internal: 콘솔을 통해 발급한 어드민 시크릿(Admin Secret)을 사용하는 커넥트 라이브 내부 인증
- external: 고객이 직접 운영하는 고객사 서버를 통해 인증하는 서비스 자체 인증

Response(Step 1)

Provisioning은 HMAC(Hash-based Message Authentication Code) 인증을 사용하는데, 이때 보안성을 높이기 위해 nonce 등을 포함하는 절차가 필요합니다. 이런 이유로 총 두 번에 걸쳐서 요청을 수행합니다. 첫 번째 요청에서 nonce를 가져오기 위해 일부러 실패를 반환해야 하며, 이때 받은 nonce를 사용하여 HMAC을 계산해서 다시 두 번째 요청할 때만 인증이 성공되게 됩니다.
Provision API의 1단계 응답은 다음과 같습니다.

Sample Code

코드예제응답 성공 Sample Code(Step 1)

    {
        "jsonrpc": "2.0",
        "id": "1",
        "error": {
            "code": -11002,
            "message": "Unauthorized",
            "data": {
                "nonce": "{NONCE}"
            }
        }
    }

코드예제응답 실패 Sample Code(Step 1)

{
	"jsonrpc": "2.0",
	"id": "1",
	"error": {
		"code": {ERROR_CODE},
		"message": "{ERROR_MESSAGE}"
	}
}

Response Elements
Provision Response Elements
필드 타입 필수 여부 설명
jsonrpc String 필수 JSON-RPC 2.0 버전
- 2.0으로 고정
id String 필수 JSON-RPC 2.0의 Transaction ID
- 1로 고정
Object 필수 에러 여부 반환
code Integer 필수 에러 코드
message String 필수 에러 메시지
Object 선택 응답 성공 시에만 반환
nonce String 선택 2단계 호출 시, 인증을 위해 value를 계산할 때 사용되는 값

Step 2

Request(Step 2)

Provision API의 2단계 요청은 다음과 같습니다.

Request Syntax

코드예제CURL 요청 Syntax(Step 2)

    curl -X POST https://icl2-provisioning-ap2.k9ertc.io/api/rpc \
        -H 'Content-Type: application/json' \
            -d '{
            "jsonrpc": "2.0",
            "id": "2",
            "method": "Provision",
            "params": {
                "version": "1.0",
                "serviceId": {YOUR_SERVICE_ID},
                "scheme": {SERVICE_ID_SCHEME},
                "auth": {
                    "nonce": {NONCE_FROM_INITIAL_TRANSACTION},
                    "key": {YOUR_SERVICE_ID},
                    "value": {CALCULATED_VALUE}
                }
            }
    }'

Request Header
Provision Request Header
파라미터 타입 필수 여부 설명
Content-Type String 필수 JSON-RPC 2.0을 사용하기 위한 헤더
- application/json으로 고정
Request Body
Provision Request Body
파라미터 타입 필수 여부 설명
jsonrpc String 필수 JSON-RPC 2.0 버전
- 2.0으로 고정
id String 필수 JSON-RPC 2.0의 Transaction ID
- 2로 고정
method String 필수 JSON-RPC 2.0의 메서드명
- Provision으로 고정
Object 필수 JSON-RPC 2.0의 파라미터
version String 선택 사용하고자 하는 Provisioning API 버전
- 기본값: 1.0
serviceId String 필수 서비스를 사용하기 위한 서비스 ID
scheme String 필수 해당 서비스 ID의 인증 방식
- internal: 콘솔을 통해 발급한 어드민 시크릿(Admin Secret)을 사용하는 커넥트 라이브 내부 인증
- external: 고객이 직접 운영하는 고객사 서버를 통해 인증하는 서비스 자체 인증
Object 필수 인증 관련 요청
nonce String 필수 1단계 호출 시, 응답에서 발급받은 값
key String 필수 서비스 ID
- 카카오 i 커넥트 라이브 콘솔에서 발급
value String 필수 계산을 통하여 생성된 값
- 그림. Value 생성 방법 참고
Value 생성 방법

Value 생성 방법 그림Value 생성 방법

Value 생성 예제

코드예제Value 생성(golang) Syntax

    // this is value calculation code snippet for iCL 2.0 provision (Golang)
    // you can run this code at (https://go.dev/play/p/fq15PI6U6Mp)
    package main

    import (
        "crypto/sha256"
        "encoding/hex"
        "fmt"
    )

    func main() {
        const serviceId = "YOUR_SERVICE_ID"         // 사용 중인 서비스 ID
        const adminSecret = "YOUR_ADMIN_SECRET"     // 사용 중인 어드민 시크릿
        const nonce = "NONCE_VALUE_FROM_PROVISION"  // Provision에서 전달받은 nonce

        value := createValue(serviceId, adminSecret, nonce) // value 생성
        fmt.Printf("Calculated value is : %s", value)                     // value 출력
    }

    func createValue(serviceId, adminSecret, nonce string) string {
        string1 := serviceId + ":" + adminSecret // serviceId, adminSecret의 조합으로 string 생성
        hash1 := sha256.Sum256([]byte(string1))
        ha := hex.EncodeToString(hash1[:])

        string2 := ha + ":" + nonce // 생성된 HA와 nonce의 조합으로 string 생성
        hash2 := sha256.Sum256([]byte(string2))
        value := hex.EncodeToString(hash2[:])

        return value
    }

코드예제Value 생성(Python) Syntax

    import hashlib

    def main():
        serviceId = "YOUR_SERVICE_ID".        # 사용 중인 서비스 ID
        adminSecret = "YOUR_ADMIN_SECRET"     # 사용 중인 어드민 시크릿
        nonce = "NONCE_VALUE_FROM_PROVISION"  # Provision에서 전달받은 nonce

        value = createValue(serviceId, adminSecret, nonce)
        print("Calculated value is : {}".format(value))

    def createValue(serviceId, adminSecret, nonce):
        string1 = serviceId + ":" + adminSecret  # serviceId, adminSecret의 조합으로 string 생성
        hash1 = hashlib.sha256(bytes(string1, 'utf-8'))
        ha = hash1.hexdigest()

        string2 = ha + ":" + nonce  # 생성된 HA와 nonce의 조합으로 string 생성
        hash2 = hashlib.sha256(bytes(string2, 'utf-8'))
        value = hash2.hexdigest()

        return value


    if __name__ == '__main__':
        main()

코드예제Value 생성(Node.js) Syntax

const {createHash} = require('node:crypto');

const serviceId = "YOUR_SERVICE_ID"         // 사용 중인 서비스 아이디
const adminSecret = "YOUR_ADMIN_SECRET"     // 사용 중인 어드민 시크릿
const nonce = "NONCE_VALUE_FROM_PROVISION"  // Provision에서 전달받은 nonce

function createValue(serviceId, adminSecret, nonce) {
  const hash1 = createHash('sha256');
  const dataForHa = `${serviceId}:${adminSecret}`
  hash1.update(dataForHa);
  const ha = hash1.copy().digest('hex')

  const hash2 = createHash('sha256');
  const dataForValue = `${ha}:${nonce}`
  hash2.update(dataForValue);
  const value = hash2.copy().digest('hex')
  return value
}

const value = createValue(serviceId, adminSecret, nonce)
console.log(`Calculated value is : ${value}`)

코드예제Value 생성(Java) Syntax

    public class Hash {
        public String createValue(String serviceId, String adminSecret, String nonce) throws NoSuchAlgorithmException {
            String string1 = serviceId + ":" + adminSecret;
            String ha = encrypt(string1);
            System.out.println(ha);
            String string2 = ha + ":" + nonce;
            String value = encrypt(string2);

            return value;
        }

        public String encrypt(String text) throws NoSuchAlgorithmException {
            MessageDigest md = MessageDigest.getInstance("SHA-256");
            md.update(text.getBytes());

            return bytesToHex(md.digest());
        }

        private String bytesToHex(byte[] bytes) {
            StringBuilder builder = new StringBuilder();
            for (byte b : bytes) {
                builder.append(String.format("%02x", b));
            }
            return builder.toString();
        }
    }

    /////////////////////////////
    import java.security.NoSuchAlgorithmException;

    public class Main {
        private static String serviceId = "YOUR_SERVICE_ID";         // 사용 중인 서비스 ID
        private static String adminSecret = "YOUR_ADMIN_SECRET";     // 사용 중인 어드민 시크릿
        private static String nonce = "NONCE_VALUE_FROM_PROVISION";  // Provision에서 전달받은 nonce

        public static void main(String[] args) throws NoSuchAlgorithmException {
            Hash hash = new Hash();
            String value = hash.createValue(serviceId, adminSecret, nonce);
            System.out.println(value);
        }
    }

Response(Step 2)

Provision API의 2단계 응답은 다음과 같습니다.

Sample Code

코드예제응답 성공 Sample Code(Step 2)

    {
        "jsonrpc": "2.0",
        "id": "2",
        "result": {
            "uuid": "{UUID}",
            "token": "{TOKEN}",
            "ttl": {TTL},
            "api": "{API_URL}"
        }
    }

코드예제응답 실패 Sample Code(Step 2)

    {
        "jsonrpc": "2.0",
        "id": "2",
        "error": {
            "code": {ERROR_CODE},
            "message": "{ERROR_MESSAGE}",
            "data": {
               "nonce": "{REGENERATED_NONCE}"
            }
        }
    }

Response Elements
Provision Response Elements
필드 타입 필수 여부 설명
jsonrpc String 필수 JSON-RPC 2.0 버전
- 2.0으로 고정
id String 필수 JSON-RPC 2.0의 Transaction ID
- 2로 고정
Object 선택 응답 성공 시 반환
uuid String 필수 사용자를 식별하기 위한 ID
token String 필수 Admin Token으로 Admin API 호출 시 사용
ttl Integer 필수 토큰의 유효기간
api String 필수 Admin API를 사용하기 위한 API Endpoint URL
Object 선택 응답 실패 시 반환
code Integer 필수 에러 코드
message String 필수 에러 메시지
Object 필수 응답 실패 시에만 반환
nonce String 필수 임의의 숫자

Room.DestroyRoom

Room을 삭제하는 API입니다. Room 삭제 시 참여자들은 RoomDestroyed 타입의 Callback 이벤트를 수신합니다.
API 호출 시, Provision API를 사용하여 발급받은 Admin Token 정보가 필요합니다.

Request

Request Syntax

코드예제CURL 요청 Syntax

    curl -X POST https://icl2-api-ap2.k9ertc.io/api/rpc \
        -H 'Content-Type: application/json' \
        -H 'Authorization: Bearer {YOUR_TOKEN}' \
        -d '{
        "jsonrpc": "2.0",
        "id": "1",
        "method": "Room.DestroyRoom",
        "params": {
            "version": "2.0",
            "roomId": "{ROOM_ID}"
        }
    }'

API 호출 방식

API 호출 방식
메서드 요청 URL
POST https://icl2-api-ap2.k9ertc.io/api/rpc

Request Header

Room.DestroyRoom Request Header
파라미터 타입 필수 여부 설명
Content-Type String 필수 JSON-RPC 2.0을 사용하기 위한 헤더
- application/json으로 고정
Authorization String 필수 Bearer {YOUR_TOKEN}: Provision API를 통해 발급받은 Admin Token

Request Body

Room.DestroyRoom Request Body
파라미터 타입 필수 여부 설명
jsonrpc String 필수 JSON-RPC 2.0 버전
- 2.0으로 고정
id String 필수 JSON-RPC 2.0의 Transaction ID
- 1로 고정
method String 필수 JSON-RPC 2.0의 메서드명
- Room.DestroyRoom으로 고정
Object 필수 JSON-RPC 2.0의 파라미터
version String 선택 사용하고자 하는 Room API 버전
- 미 입력 시 기본값(1.0)을 전달
roomId String 필수 삭제할 Room의 ID

Response

Sample Code

코드예제응답 성공 Sample Code

    {
        "jsonrpc": "2.0",
        "id": "1",
        "result": {}
    }

코드예제응답 실패 Sample Code

    {
        "jsonrpc": "2.0",
        "id": "1",
        "error": {
            "code": {ERROR_CODE},
            "message": "{ERROR_MESSAGE}"
        }
    }

Response Elements

Room.DestroyRoom Response Elements
필드 타입 필수 여부 설명
jsonrpc String 필수 JSON-RPC 2.0 버전
- 2.0으로 고정
id String 필수 JSON-RPC 2.0의 Transaction ID
- 1로 고정
result Object 선택 응답 성공 시 반환
- 삭제된 Room의 ID
Object 선택 응답 실패 시 반환
code Integer 필수 에러 코드
message String 필수 에러 메시지
data Object 선택 에러 관련 데이터

Room.ListParticipants

Room의 참여자 목록을 조회하는 API입니다. API 호출 시, Provision API를 사용하여 발급받은 Admin Token 정보가 필요합니다.

Request

Request Syntax

코드예제CURL 요청 Syntax

    curl -X POST https://icl2-api-ap2.k9ertc.io/api/rpc \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer {YOUR_TOKEN}' \
    -d '{
        "jsonrpc": "2.0",
        "id": "1",
        "method": "Room.ListParticipants",
        "params": {
            "version": "2.0",
            "roomId": "{ROOM_ID}"
        }
    }'

API 호출 방식

API 호출 방식
메서드 요청 URL
POST https://icl2-api-ap2.k9ertc.io/api/rpc

Request Header

Room.ListParticipants Request Header
파라미터 타입 필수 여부 설명
Content-Type String 필수 JSON-RPC 2.0을 사용하기 위한 헤더
- application/json으로 고정
Authorization String 필수 Bearer {YOUR_TOKEN}: Provision API를 통해 발급받은 Admin Token

Request Body

Room.ListParticipants Request Body
파라미터 타입 필수 여부 설명
jsonrpc String 필수 JSON-RPC 2.0 버전
- 2.0으로 고정
id String 필수 JSON-RPC 2.0의 Transaction ID
- 1로 고정
method String 필수 JSON-RPC 2.0의 메서드명
- Room.ListParticipants으로 고정
Object 필수 JSON-RPC 2.0의 파라미터
version String 선택 사용하고자 하는 Room API 버전
- 미 입력 시 기본값(1.0)을 전달
roomId String 필수 참여자 목록을 조회할 Room의 ID

Response

Sample Code

코드예제응답 성공 Sample Code

    {
        "jsonrpc": "2.0",
        "id": "1",
        "result": {
            "participants": [
                {
                    "participantId": "{PARTICIPANT_ID_1}",
                },
                {
                    "participantId": "{PARTICIPANT_ID_2}",
                }
            ]
        }
    }

코드예제응답 실패 Sample Code

    {
        "jsonrpc": "2.0",
        "id": "1",
        "error": {
            "code": {ERROR_CODE},
            "message": "{ERROR_MESSAGE}"
        }
    }

Response Elements

Room.ListParticipants Response Elements
필드 타입 필수 여부 설명
jsonrpc String 필수 JSON-RPC 2.0 버전
- 2.0으로 고정
id String 필수 JSON-RPC 2.0의 Transaction ID
- 1로 고정
String 선택 응답 성공 시 반환
Object[] 필수 해당 Room의 참여자 목록
participantId String 필수 해당 Room의 참여자 ID
Object 선택 응답 실패 시 반환
code Integer 필수 에러 코드
message String 필수 에러 메시지
data Object 선택 에러 관련 데이터

Room.KickParticipant

참여자를 강제로 퇴장시키는 API입니다. 강제로 퇴장된 참여자는 Kicked 타입의 이벤트를 수신합니다.
본 API를 호출 시, Provision API를 사용하여 발급받은 Admin Token이 필요합니다.

Request

Request Syntax

코드예제CURL 요청 Syntax

    curl -X POST https://icl2-api-ap2.k9ertc.io/api/rpc \
   -H 'Content-Type: application/json' \
   -H 'Authorization: Bearer {YOUR_TOKEN}' \
   -d '{
    "jsonrpc": "2.0",
    "id": "1",
    "method": "Room.KickParticipant",
    "params": {
		"version": "2.0",
        "roomId": "{ROOM_ID}",
        "targets": [
            {
                "participantId" : "{PARTICIPANT_ID}"
            }
        ]
    }
}'

API 호출 방식

API 호출 방식
메서드 요청 URL
POST https://icl2-api-ap2.k9ertc.io/api/rpc

Request Header

Room.KickParticipant Request Header
파라미터 타입 필수 여부 설명
Content-Type String 필수 JSON-RPC 2.0을 사용하기 위한 헤더
- application/json으로 고정
Authorization String 필수 Bearer {YOUR_TOKEN}: Provision API를 통해 발급받은 Admin Token

Request Body

Room.KickParticipant Request Body
파라미터 타입 필수 여부 설명
jsonrpc String 필수 JSON-RPC 2.0 버전
- 2.0으로 고정
id String 필수 JSON-RPC 2.0의 Transaction ID
- 1로 고정
method String 필수 JSON-RPC 2.0의 메서드명
- Room.KickParticipant으로 고정
Object 필수 JSON-RPC 2.0의 파라미터
version String 선택 사용하고자 하는 Room API 버전
- 미입력 시 기본값(1.0)을 전달
roomId String 필수 참여자를 강제 퇴장시킬 Room의 ID
Object[] 필수 강제 퇴장 대상 참여자 목록
participantId String 필수 강제 퇴장 대상 Participant ID

Response

Sample Code

코드예제응답 성공 Sample Code

    {
        "jsonrpc": "2.0",
        "id": "1",
        "result": {}
    }

코드예제실패 응답 Sample Code

    {
        "jsonrpc": "2.0",
        "id": "1",
        "error": {
            "code": {ERROR_CODE},
            "message": "{ERROR_MESSAGE}"
        }
    }

Response Elements

Room.KickParticipant Response Elements
필드 타입 필수 여부 설명
jsonrpc String 필수 JSON-RPC 2.0 버전
- 2.0으로 고정
id String 필수 JSON-RPC 2.0의 Transaction ID
- 1로 고정
result Object 선택 응답 성공 시 반환
Object 선택 응답 실패 시 반환
code Integer 필수 에러 코드
message String 필수 에러 메시지
data Object 선택 에러 관련 데이터

Room.InactiveStream

특정 참여자의 스트림 송출을 중단하는 API입니다. 송출이 중단된 참여자는 InactivatedStream 타입의 이벤트를 수신합니다.
메서드 호출 시, Provision API를 사용하여 발급받은 Admin Token이 필요합니다.

Request

Request Syntax

코드예제CURL 요청 Syntax

curl -X POST https://icl2-api-ap2.k9ertc.io/api/rpc \
   -H 'Content-Type: application/json' \
   -H 'Authorization: Bearer {YOUR_TOKEN}' \
   -d '{
    "jsonrpc": "2.0",
    "id": "1",
    "method": "Room.InactiveStream",
    "params": {
		  "version": "2.0",
          "roomId": "{ROOM_ID}",
		  "targets": [
            {
                "participantId" : "{PARTICIPANT_ID}",
                "streamId" : {STREAM_ID}
            }
        ]
    }
}'

API 호출 방식

API 호출 방식
메서드 요청 URL
POST https://icl2-api-ap2.k9ertc.io/api/rpc

Request Header

Room.InactiveStream Request Header
파라미터 타입 필수 여부 설명
Content-Type String 필수 JSON-RPC 2.0을 사용하기 위한 헤더
- application/json으로 고정
Authorization String 필수 Bearer {YOUR_TOKEN}: Provision API를 통해 발급받은 Admin Token

Request Body

Room.InactiveStream Request Body
파라미터 타입 필수 여부 설명
jsonrpc String 필수 JSON-RPC 2.0 버전
- 2.0으로 고정
id String 필수 JSON-RPC 2.0의 Transaction ID
- 1로 고정
method String 필수 JSON-RPC 2.0의 메서드명
- Room.InactiveStream으로 고정
Object 필수 JSON-RPC 2.0의 파라미터
version String 선택 사용하고자 하는 Room API 버전
- 미 입력 시 기본값(1.0)을 전달
roomId String 필수 송출 중단 대상이 참여한 Room의 ID
Object[] 필수 송출 중단 대상 참여자 목록
participantId String 필수 송출 중단 대상 참여자 Participant ID
streamId Integer 필수 송출 중단 대상 Stream ID

Response

Sample Code

코드예제응답 성공 Sample Code

    {
        "jsonrpc": "2.0",
        "id": "1",
        "result": {}
    }

코드예제응답 실패 Sample Code

    {
        "jsonrpc": "2.0",
        "id": "1",
        "error": {
            "code": {ERROR_CODE},
            "message": "{ERROR_MESSAGE}"
        }
    }

Response Elements

Room.InactiveStream Response Elements
필드 타입 필수 여부 설명
jsonrpc String 필수 JSON-RPC 2.0 버전
- 2.0으로 고정
id String 필수 JSON-RPC 2.0의 Transaction ID
- 1로 고정
result Object 선택 응답 성공 시 반환
Object 선택 응답 실패 시 반환
code Integer 필수 에러 코드
message String 필수 에러 메시지
data Object 선택 에러 관련 데이터

Room.ListRooms

해당 서비스의 Room 목록 조회 API입니다. 메서드 호출 시, Provision API를 사용하여 발급받은 Admin Token이 필요합니다.

Request

Request Syntax

코드예제CURL 요청 Syntax

    curl -X POST https://icl2-api-ap2.k9ertc.io/api/rpc \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer {YOUR_TOKEN}' \
    -d '{
        "jsonrpc": "2.0",
        "id": "1",
        "method": "Room.ListRooms",
        "params": {
                    "version": "2.0"
        }
    }'

API 호출 방식

API 호출 방식
메서드 요청 URL
POST https://icl2-api-ap2.k9ertc.io/api/rpc

Request Header

Room.ListRooms Request Header
파라미터 타입 필수 여부 설명
Content-Type String 필수 JSON-RPC 2.0을 사용하기 위한 헤더
- application/json으로 고정
Authorization String 필수 Bearer {YOUR_TOKEN}: Provision API를 통해 발급받은 Admin Token

Request Body

Room.ListRooms Request Body
파라미터 타입 필수 여부 설명
jsonrpc String 필수 JSON-RPC 2.0 버전
- 2.0으로 고정
id String 필수 JSON-RPC 2.0의 Transaction ID
- 1로 고정
method String 필수 JSON-RPC 2.0의 메서드명
- Room.ListRooms으로 고정
Object 필수 JSON-RPC 2.0의 파라미터
version String 선택 사용하고자 하는 Room API 버전
- 미입력 시 기본값(1.0)을 전달

Response

Sample Code

코드예제응답 성공 Sample Code

    {
        "jsonrpc": "2.0",
        "id": "1",
        "result": [
                "{ROOM_ID_1}",
                "{ROOM_ID_2}"
            ]
    }

코드예제응답 실패 Sample Code

    {
        "jsonrpc": "2.0",
        "id": "1",
        "error": {
            "code": {ERROR_CODE},
            "message": "{ERROR_MESSAGE}"
        }
    }

Response Elements

Room.ListRooms Response Elements
필드 타입 필수 여부 설명
jsonrpc String 필수 JSON-RPC 2.0 버전
- 2.0으로 고정
id String 필수 JSON-RPC 2.0의 Transaction ID
- 1로 고정
result String[] 선택 응답 성공 시 반환
Object 선택 응답 실패 시 반환
code Integer 필수 에러 코드
message String 필수 에러 메시지
data Object 선택 에러 관련 데이터
이 문서가 만족스러운 이유를 알려주세요.
이 문서에 아쉬운 점을 알려주세요.
평가해주셔서 감사합니다.

더 자세한 의견은 documentation@kakaoenterprise.com 으로 제보해주세요.