---
title: "세션 매니저 API 호출 예제"
description: "세션 URL API 호출을 위한 pallycon-apidata 요청 데이터를 단계별로 만드는 예제와, JWT로 세션 매니저 API를 호출하는 Postman 컬렉션을 제공합니다."
---
> For the complete documentation index, see [llms.txt](https://docs.doverunner.com/llms.txt).

이 문서는 세션 매니저 API를 호출하는 방법을 예제로 안내합니다. `pallycon-apidata` 요청 데이터를 단계별로 만드는 방법과 Postman에서 JWT로 API를 호출하는 방법을 다룹니다. 요청·응답 규격, 파라미터, 에러 코드는 [세션 매니저 API](https://docs.doverunner.com/ko/content-security/forensic-watermarking/embedding/session-manager/) 문서를 참고하시기 바랍니다.

## pallycon-apidata를 이용하는 단계 별 예제 (세션 URL API)

아래 가이드는 `세션 URL API`에 대해 요청 데이터를 생성하고 응답을 얻는 방법을 단계 별로 보여줍니다. 세션 목록 요청 API 등의 다른 API의 경우에도 유사한 방법으로 적용할 수 있습니다.

아래 단계 별 예제와 함께 Github에 공유된 다음의 샘플 코드도 참고하시기 바랍니다.

|샘플 타입 |GitHub 링크 |
|---|---|
|Python| [https://github.com/inka-pallycon/pallycon-wm-api-request-sample-python](https://github.com/inka-pallycon/pallycon-wm-api-request-sample-python) |
|Java| [https://github.com/inka-pallycon/pallycon-wm-api-request-sample-java](https://github.com/inka-pallycon/pallycon-wm-api-request-sample-java) |

:::note 

예제에서 사용된 입력값들은 참고 용이며, 실제 동작을 위해서는 고객사의 도브러너 계정에 해당되는 값들을 입력해야 합니다.

:::

### 1단계 - 요청 데이터 JSON 생성

#### JSON 예제

```json
{
    "domain": "cdn.service-site.com",
    "output_path": "output",
    "cid": "content1",
    "streaming_format": "dash",
    "forensic_mark": "testmark.1234567",
    "wmt_type": "aes",
    "prefix_folder": "wm-contents"
}
```

### 2단계 - JSON 문자열의 AES256 암호화

- 테스트 가능한 곳: https://www.devglan.com/online-tools/aes-encryption-decryption
- 모드: CBC
- 키 길이: 256
- IV: 0123456789abcdef (고정값)
- 비밀 키: cUk29dLagiJ0FGiK681tFIR75ETESe0S (도브러너 콘솔 사이트에서 확인한 '사이트 키' 값을 입력)
- 결과물 형식: Base64 문자열

#### 2단계 결과물

```txt
ra2Q7t5DTIImHYsOcARkiG5/cuXfa/nB4jR3IVBRUVDZBxvqK+zQXcTv2bljMGAyt03WDXbMex5KzrSTIrDbWuDkX0juIMdngoHaS8WKX6fhDlKJ/AkBaUEcF5SkAOmfYgCs7cURH3gwgZ1rrJ6WyBD09vLoqHqAs61a5Mrqv342TYqooCjibcsSYQujXkzfAgLTD390Eiakf/MkWMVVSjw0GP3LZkbnl67SiVwo58aW6ZTz/jnlKCuoz/zicUEa58KLmPzDBJjP8i+VhdRw8Q==
```

### 3단계 - 해시 생성

- 액세스 키: A3DfypNw0bLgR3FAa5Q2TbS1iiUK4iIf (도브러너 콘솔 사이트에서 확인한 엑세스 키 값을 입력)
- 사이트 ID: EXPL (도브러너 콘솔 사이트에서 확인한 사이트 ID 값을 입력)
- api data: 2단계 결과물
- 타임스탬프: 2021-09-07T02:15:00Z

#### 해시 생성을 위해 조합된 문자열

```txt
A3DfypNw0bLgR3FAa5Q2TbS1iiUK4iIfEXPLN5CNHHCgEPVDFBpgtHzraqNUzBZoy4pzx3fSDnzHDMek5AMlmWSlII67tNQ2MJP1NL+dSjQZlEnXp7+ATXOopJEdH1KIZ0jNjY19bRLl9aG0gJSsbS6krhNxuuDzLayT/CgPwQUge1hQj1U2xtXSbDFUfiXSFZtJLSlA/QdTwTC5NpxfLjBmtRspPh1AOuKNwgiS9HuJxV9f6NDK22unYrzZyq6HG+qNEY6O3kp8GdRkdTU62U4t9J/byiAtEkLT2021-09-07T02:15:00Z
```

#### 3단계 결과물

- sha256 + base64 출력 결과 (테스트 가능한 곳: https://hash.online-convert.com/sha256-generator)

```txt
Z4f4gAJPeJUytea8f4DXg7jz+vAkmzNVQEiaU7QO3tA=
```

### 4단계 - 요청 데이터 JSON 생성 및 Base64 인코딩

- 'data': 2단계 결과물
- 'timestamp': 3단계의 타임스탬프와 동일한 값
- 'hash': 3단계 결과물

#### JSON 문자열

```json
{
    "data": "N5CNHHCgEPVDFBpgtHzraqNUzBZoy4pzx3fSDnzHDMek5AMlmWSlII67tNQ2MJP1NL+dSjQZlEnXp7+ATXOopJEdH1KIZ0jNjY19bRLl9aG0gJSsbS6krhNxuuDzLayT/CgPwQUge1hQj1U2xtXSbDFUfiXSFZtJLSlA/QdTwTC5NpxfLjBmtRspPh1AOuKNwgiS9HuJxV9f6NDK22unYrzZyq6HG+qNEY6O3kp8GdRkdTU62U4t9J/byiAtEkLT",
    "timestamp":"2021-09-07T02:15:00Z",
    "hash":"Z4f4gAJPeJUytea8f4DXg7jz+vAkmzNVQEiaU7QO3tA="
}
```

#### 4단계 결과물 (base64 인코딩된 JSON)

```txt
ewogICAgImRhdGEiOiAiTjVDTkhIQ2dFUFZERkJwZ3RIenJhcU5VekJab3k0cHp4M2ZTRG56SERNZWs1QU1sbVdTbElJNjd0TlEyTUpQMU5MK2RTalFabEVuWHA3K0FUWE9vcEpFZEgxS0laMGpOalkxOWJSTGw5YUcwZ0pTc2JTNmtyaE54dXVEekxheVQvQ2dQd1FVZ2UxaFFqMVUyeHRYU2JERlVmaVhTRlp0SkxTbEEvUWRUd1RDNU5weGZMakJtdFJzcFBoMUFPdUtOd2dpUzlIdUp4VjlmNk5ESzIydW5ZcnpaeXE2SEcrcU5FWTZPM2twOEdkUmtkVFU2MlU0dDlKL2J5aUF0RWtMVCIsCiAgICAidGltZXN0YW1wIjoiMjAyMS0wOS0wN1QwMjoxNTowMFoiLAogICAgImhhc2giOiJaNGY0Z0FKUGVKVXl0ZWE4ZjREWGc3anordkFrbXpOVlFFaWFVN1FPM3RBPSIKfQ==
```

### 5단계 - 세션 매니저 API 호출

- API URL: https://fwm-session.doverunner.com/api/v2/session/watermarkUrl/EXPL (마지막 `EXPL` 부분은 고객사 도브러너 계정의 사이트 ID로 대체 필요)
- 쿼리 파라미터 키: pallycon-apidata
- 파라미터 값: 4단계 결과물

### 파라미터 추가된 API URL

```txt
https://fwm-session.doverunner.com/api/v2/session/watermarkUrl/EXPL?pallycon-apidata=ewogICAgImRhdGEiOiAiTjVDTkhIQ2dFUFZERkJwZ3RIenJhcU5VekJab3k0cHp4M2ZTRG56SERNZWs1QU1sbVdTbElJNjd0TlEyTUpQMU5MK2RTalFabEVuWHA3K0FUWE9vcEpFZEgxS0laMGpOalkxOWJSTGw5YUcwZ0pTc2JTNmtyaE54dXVEekxheVQvQ2dQd1FVZ2UxaFFqMVUyeHRYU2JERlVmaVhTRlp0SkxTbEEvUWRUd1RDNU5weGZMakJtdFJzcFBoMUFPdUtOd2dpUzlIdUp4VjlmNk5ESzIydW5ZcnpaeXE2SEcrcU5FWTZPM2twOEdkUmtkVFU2MlU0dDlKL2J5aUF0RWtMVCIsCiAgICAidGltZXN0YW1wIjoiMjAyMS0wOS0wN1QwMjoxNTowMFoiLAogICAgImhhc2giOiJaNGY0Z0FKUGVKVXl0ZWE4ZjREWGc3anordkFrbXpOVlFFaWFVN1FPM3RBPSIKfQ==
```

### API 응답 (최종 결과)

```json
{
    "error_message":"Success",
    "error_code":"0000",
    "url":"https://cdn.service-site.com/wm-contents/OHVPUw4N4tUoc-wlcA72aX6Hj5a_v-HuXcLAbFwYSpwDDsiVdSLNbWnbjkVvTX20yiKw7U6nOmJzZaDep1_3YJYxfvHzof01IAVgAguBhGk=/output/ddb2b84b-c3ce-4f37-9182-c36f83fc3fce/dash/stream.mpd"
}
```

## JWT 연동을 통해 이용하는 예제

JWT를 이용하여 API를 호출 해 볼 수 있게 해주는 Postman Collection 입니다. 자세한 사항은 [Postman Collection 사용 가이드](https://learning.postman.com/docs/getting-started/importing-and-exporting-data/#importing-data-into-postman)를 참고하시기 바랍니다.

[Collection JSON 파일](https://docs.doverunner.com/files/Session-API-Sample-JWT.postman_collection.json)

[Environment JSON 파일](https://docs.doverunner.com/files/Session-API-Sample-JWT.postman_environment.json)