PallyCon 서비스 API 가이드 V2
개요
PallyCon 서비스 고객은 PallyCon 웹 콘솔에서 콘텐츠 패키징, 라이선스 발급 등 다양한 데이터를 확인할 수 있습니다. API 기반의 데이터 접근이 필요한 경우, 고객은 PallyCon 서비스 API
를 이용해 PallyCon 서버 측 데이터를 자사 시스템과 통합할 수 있습니다.
이 문서는 2021년 12월에 출시된 PallCon 서비스 API V2
를 기준으로 작성되었습니다.
API 기본 정보
PallyCon 서비스 API
는 정보의 안전한 전송을 위해 JSON Web Token(JWT)을 사용합니다.
온라인 JWT 도구 또는 서버 측 프로그래밍 언어를 사용하여 JWT 토큰을 생성하고 테스트할 수 있습니다.
토큰은 HMAC SHA256(HS256) 알고리듬과 함께 계정별 비밀 키를 사용하여 서명해야 합니다. 토큰 페이로드에 사용되는 서비스 API 키와 계정 seq 값은 헬프데스크 티켓을 통해 요청할 수 있습니다.
JWT 구조
위 캡쳐 이미지에서 확인할 수 있듯이, 인코딩된 JWT 토큰의 형식은 다음과 같습니다.
base64UrlEncode(header) + "." + base64UrlEncode(payload) + "." + HS256 signature value
페이로드 규격
토큰은 아래 예시와 같은 JSON 페이로드 데이터를 사용합니다.
{
"sub" : "PallyConAPI",
"aud" : "INKA",
"iss" : "PallyCon",
"account_id" : "Your PallyCon account ID",
"account_seq": "Your PallyCon account SEQ",
"exp": 1583191411
}
키 | 필수 여부 | 값 |
---|---|---|
sub | Y | PallyConAPI (고정 값) |
aud | Y | INKA (고정 값) |
iss | Y | PallyCon (고정 값) |
account_id | Y | PallyCon 서비스 계정 ID |
account_seq | Y | PallyCon 서비스 계정의 SEQ (헬프데스크 티켓을 통해 요청 가능) |
exp | N | 토큰 만료 일자 (형식: date number) |
SEQ
는 PallyCon 서비스 API에서 주요 데이터를 인덱싱하는데 사용되는 키값입니다.
기본 응답 규격
PallyCon 서비스 API를 호출하면 아래와 같은 HTTP 상태 코드 중 하나를 받게 됩니다.
HTTP 상태 코드 | 설명 |
---|---|
401 | JWT 토큰 사양이 잘못되었거나 사용자 정보를 찾을 수 없음 |
403 | 호출된 API에 대한 권한이 없음 |
200 | HTTP 통신 성공 |
HTTP 상태 코드가 200
(HTTP 통신 성공)인 경우 JSON 형식으로 아래 응답 데이터를 받게 됩니다.
키 | 유형 | 값 |
---|---|---|
error_code | String | 0000: 성공 / 기타 숫자: 실패 |
error_message | String | 실패한 요청에 대한 오류 메시지 표시 |
data | JSON | API 요청 결과 (성공 시) |
계정 관리 API
PallyCon 서비스 계정 및 사이트 관리를 위한 API입니다.
사이트
는 PallyCon 솔루션이 적용된 당사 고객의 서비스 사이트를 의미합니다. PallyCon 계정에는 기본적으로 하나의 사이트가 있으며, 필요한 경우 계정에 사이트를 추가할 수 있습니다. (예: 여러 고객이 있는 리셀러 계정)
각 사이트는 4개의 영숫자로 된 고유 ID(사이트 ID)가 있습니다.
사이트 목록 조회
이 API는 PallyCon 계정의 사이트 목록을 검색합니다.
- URL: https://service.pallycon.com/api/v2/account/siteId
- Method: GET
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 인코딩된 JWT 데이터 |
api_code | String | Y | API 코드 UC011004100 |
Response.data
키 | 유형 | 설명 |
---|---|---|
site_id | String | 사이트 ID (네자리 영숫자, PallyCon 콘솔에서 조회 가능) |
service_name | String | 서비스 사이트 이름 |
product_list | Array | 제품 리스트 |
product_list.[].service_code | String | 제품 코드 ( PD001 : DRM, PD002 : FWM ) |
product_list.[].status_code | String | 서비스 상태 (SE000 : 서비스중, SE001 : 서비스 중지 ) |
서비스 사이트 추가 요청
이 API는 PallyCon 계정에 대한 추가 서비스 사이트를 요청합니다. (한 계정에서 여러 개의 서비스 사이트를 운영하는 경우)
- URL: https://service.pallycon.com/api/v2/account/siteId/approve
- Method: POST
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 인코딩된 JWT 데이터 |
api_code | String | Y | API 코드 UA010310200 |
service_name | String | Y | 추가될 서비스 사이트 명 |
Response.data
키 | 유형 | 설명 |
---|---|---|
seq | Int | 해당 요청에 대한 SEQ (시퀀스 번호) |
사이트 추가 상태 조회
이 API는 서비스 사이트 추가 요청에 대한 상태를 반환합니다.
- URL: https://service.pallycon.com/api/v2/account/siteId/approve
- Method: GET
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 인코딩된 JWT 데이터 |
api_code | String | Y | API 코드 UA010310100 |
from | String | N | 검색 기간 시작일 (YYYY-MM-DD) |
to | String | N | 검색 기간 종료일 (YYYY-MM-DD) |
req_status | String | N | 사이트 추가 진행 상태 |
search_type | String | N | 검색 유형 (account_id, site_id) |
search_keyword | String | N | 검색 키워드 (검색 유형이 설정된 경우) |
page_unit | Int | N | 검색 결과 수 지정 (기본 값:25, 최대: 1000) |
page_index | Int | N | 검색 결과 페이지 번호 (결과 수가 page_unit 보다 클 경우) |
Response.data
키 | 유형 | 설명 |
---|---|---|
seq | Int | 사이트 추가 요청에 대한 SEQ 번호 |
account_id | String | PallyCon 서비스 계정 ID |
site_id | String | 사이트 ID (네자리 영숫자) |
service_name | String | 서비스 사이트 명 |
status | String | 사이트 추가 진행 상태 |
update_time | String | 상태 업데이트 시간 |
reg_time | String | 요청 등록 시간 |
하위 사용자 목록 조회
이 API는 계정의 하위 구성원 목록을 조회합니다.
- URL: https://service.pallycon.com/api/v2/account/member
- Method: GET
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 인코딩된 JWT 데이터 |
api_code | String | Y | API 코드 UA010700200 |
page_unit | Int | N | 검색 결과 수 지정 (기본 값:25, 최대: 1000) |
page_index | Int | N | 검색 결과 페이지 번호 (결과 수가 page_unit 보다 클 경우) |
Response.data
키 | 유형 | 설명 |
---|---|---|
group_name | String | 하위 사용자가 소속된 권한 그룹 명 |
group_seq | Int | 권한 그룹의 SEQ 번호 (아래 테이블 참조) |
member_seq | Int | 해당 하위 사용자의 SEQ 번호 |
member_email | String | 하위 사용자의 이메일 주소 |
status_code | String | 하위 사용자 상태 코드 (MT001: 활성, MT002: 비활성) |
reg_date | String | 하위 사용자 등록 날짜 (YYYY-MM-DD) |
- 그룹 SEQ 목록
SEQ 번호 설명 1000 BIZ 그룹. 서비스 사용 이력 및 연동 정보와 결제 관련 정보에 접근 가능 1001 TS 그룹. 서비스 사용 이력 및 연동 정보와 SDK 다운로드 페이지 접근 가능 1014 Clients 그룹. 서비스 사용 이력 페이지만 접근 가능
하위 사용자 생성
이 API는 계정에 하위 구성원을 만듭니다.
- URL: https://service.pallycon.com/api/v2/account/member
- Method: POST
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 인코딩된 JWT 데이터 |
api_code | String | Y | API 코드 UA010700200 |
member_email | String | Y | 하위 사용자 이메일 주소 |
group_seq | Int | N | 해당 하위 사용자가 소속될 권한 그룹의 SEQ |
Response.data
키 | 유형 | 설명 |
---|---|---|
member_seq | Int | 생성된 하위 사용자의 SEQ 번호 |
하위 사용자 암호 재설정
이 API는 하위 사용자의 비밀번호를 재설정합니다.
- URL: https://service.pallycon.com/api/v2/account/member/repw
- Method: PUT
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 인코딩된 JWT 데이터 |
api_code | String | Y | API 코드 UA010700200 |
member_seq | Int | Y | 하위 사용자의 SEQ 번호 |
Response
이 API는 기본 응답 데이터를 응답합니다.
하위 사용자 정보 수정
이 API는 그룹 및 상태와 같은 하위 사용자의 정보를 업데이트합니다.
- URL: https://service.pallycon.com/api/v2/account/member
- Method: PUT
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 인코딩된 JWT 데이터 |
api_code | String | Y | API 코드 UA010700200 |
member_seq | Int | Y | 하위 사용자의 SEQ 번호 |
member_status | String | N | 적용할 사용자 상태 코드 (MT001: 활성, MT002: 비활성) |
group_seq | Int | N | 적용할 권한 그룹의 SEQ |
Response
이 API는 기본 응답 데이터를 응답합니다.
PallyCon 서비스 공통 API
PallyCon의 여러 제품에서 공통으로 사용되는 서비스 API를 설명합니다.
서비스 상태 변경 요청 현황 조회
이 API는 PallyCon 제품 별로 서비스 상태 변경 요청에 대한 현황을 조회합니다.
- URL: https://service.pallycon.com/api/v2/plan/request/status/{site_id}
- Method: GET
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 회원 정보가 있는 암호화된 jwt |
api_code | String | Y | api 코드 (UC011004100) |
site_id | PathVariable | Y | SITE ID |
service_code | String | Y | 제품코드 (PD001:DRM, PD002:FWM) |
Response
키 | 유형 | 설명 |
---|---|---|
site_id | String | 사이트 ID |
req_group_id | String | 요청 ID (PK) |
reg_type | String | 요청타입 코드 |
reg_message | String | 요청 내용 |
reg_status | String | 요청 상태 (ST001: 신청, ST002: 반려 또는 취소, ST003:승인) |
reg_id | String | 요청 ID |
reg_dt | String | 저장일 (UTC +00:00 기준) |
update_dt | String | 요청 내역 수정일 (UTC +00:00 기준) |
서비스 상태 변경 요청
이 API는 PallyCon 제품 별로 서비스 상태를 변경하기 위한 요청을 등록합니다.
- URL: https://service.pallycon.com/api/v2/plan/request/status/{site_id}
- Method: POST
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 회원 정보가 있는 암호화된 jwt |
api_code | String | Y | api 코드 (UC011004100) |
site_id | PathVariable | Y | SITE ID |
service_code | String | Y | 제품코드 (PD001:DRM, PD002:FWM) |
request_type | String | Y | 요청타입 코드 (SM001:서비스 재개 요청, SM002:서비스 중지 요청, SM003:트라이얼 기간 연장 요청) |
request_message | String | N | 요청 내용 |
Response.data
키 | 유형 | 설명 |
---|---|---|
site_id | String | 사이트 ID |
req_group_id | String | 요청 ID (PK) |
reg_type | String | 요청타입 코드 |
reg_message | String | 요청 내용 |
reg_id | String | 요청 ID |
reg_dt | String | 저장일 (UTC +00:00 기준) |
서비스 상태 변경 요청 취소
이 API는 PallyCon 제품 별 서비스 상태 변경 요청을 취소합니다.
- URL: https://service.pallycon.com/api/v2/plan/request/status/{site_id}
- Method: PUT
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 회원 정보가 있는 암호화된 jwt |
api_code | String | Y | api 코드 (UC011004100) |
site_id | PathVariable | Y | SITE ID |
service_code | String | Y | 제품코드 (PD001:DRM, PD002:FWM) |
request_type | String | Y | 요청타입 코드 (SM004:서비스 변경 요청 취소) |
request_group_id | String | Y | 요청 ID (PK) |
Response.data
키 | 유형 | 설명 |
---|---|---|
site_id | String | 사이트 ID |
req_group_id | String | 요청 ID (PK) |
reg_type | String | 기존 요청타입 코드 |
reg_status | String | 요청 상태 (ST001: 신청, ST002: 반려 또는 취소, ST003:승인) |
reg_message | String | 요청 내용 |
reg_id | String | 요청 ID |
reg_dt | String | 저장일 (UTC +00:00 기준) |
update_dt | String | 요청 내역 수정일 (UTC +00:00 기준) |
DRM 서비스 API
PallyCon 멀티 DRM 서비스와 관련된 API를 설명합니다.
DRM 라이선스 발급 조회
이 API는 특정 기간에 발급된 DRM 라이선스의 목록을 검색합니다.
- URL: https://service.pallycon.com/api/v2/drm/license
- Method: GET
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 인코딩된 JWT 데이터 |
api_code | String | Y | API 코드 (UA003001100) |
site_id | String | Y | 사이트 ID (네자리 영숫자) |
from | String | N | 검색 기간 시작일 (YYYY-MM-DD) |
to | String | N | 검색 기간 종료일 (YYYY-MM-DD) |
search_status | String | N | 라이선스 발급 상태로 검색 (success or fail) |
search_condition | String | N | 키워드 검색 카테고리 (cid, drm_type, user_id, device_id, device_model) |
search_keyword | String | N | 카테고리 검색에 사용될 키워드 (search_condition 설정 시) |
page_unit | Int | N | 검색 결과 수 지정 (기본 값:25, 최대: 1000) |
page_index | Int | N | 검색 결과 페이지 번호 (결과 수가 page_unit 보다 클 경우) |
- 요청 예제
curl -H 'authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJQYWxseUNvbkFQSSIsImF1ZCI6IklOS0EiLCJpc3MiOiJQYWxseUNvbiIsImFkbWluIjp0cnVlLCJ1c2VySWQiOiJ0ZXN0dXNlciJ9.p7VJmRryoaSVU2qn9PDuoDRIFxphw0N2786bR6zhELQ' 'https://service.pallycon.com/api/v2/drm/license?api_code=UA003001100&site_id=DEMO&from=2020-03-01&to=2020-03-02&search_status=success&search_condition=cid&search_keyword=test'
Response.data (Array)
키 | 유형 | 설명 |
---|---|---|
cid | String | 콘텐츠의 고유 ID |
status | String | 라이선스 발급 상태 (success, fail) |
error_code | String | 에러 코드 (성공: 0000, 실패 시 해당 에러 코드) |
drm_type | String | DRM 유형 (PlayReady, Widevine, FairPlay, NCG) |
user_id | String | 최종 사용자의 고유 ID |
device_id | String | 클라이언트 기기의 고유 ID |
device_model | String | 클라이언트 기기 모델명 |
license_type | String | DRM 라이선스 연동 방식 (token, gateway) |
platform_name | String | 클라이언트 플랫폼 정보 |
reg_time | String | 라이선스 요청 등록 시간 |
- 응답 예제
{
"_links":{
"self":{
"href":"http://service.pallycon.com/api/v2/drm/license"
}
},
"error_code":"0000",
"data":[{
"cid":"configtest",
"status":"success",
"error_code":"0000",
"drm_type":"FairPlay",
"user_id":"uuu",
"device_id":"13406080a61bef63aaa1d99a32f51e31c804e659",
"device_model":"iOS-device",
"license_type":"gateway",
"platform_name":"iOS",
"reg_time":"20200302235959"
},
{
"cid":"configtest",
"status":"success",
"error_code":"0000",
"drm_type":"FairPlay",
"user_id":"uuu",
"device_id":"13406080a61bef63aaa1d99a32f51e31c804e659",
"device_model":"iOS-device",
"license_type":"gateway",
"platform_name":"iOS",
"reg_time":"20200302235956"
}],
"count":2
}
}
DRM 사용자 조회
이 API는 특정 기간에 라이선스를 획득한 최종 사용자 ID의 목록을 검색합니다.
- URL: https://service.pallycon.com/api/v2/drm/user
- Method: GET
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 인코딩된 JWT 데이터 |
api_code | String | Y | API 코드 값 (UA003001100) |
site_id | String | Y | 사이트 ID (네자리 영숫자) |
from | String | N | 검색 기간 시작일 (YYYY-MM-DD) |
to | String | N | 검색 기간 종료일 (YYYY-MM-DD) |
search_keyword | String | N | 검색할 사용자 ID |
page_unit | Int | N | 검색 결과 수 지정 (기본 값:25, 최대: 1000) |
page_index | Int | N | 검색 결과 페이지 번호 (결과 수가 page_unit 보다 클 경우) |
- 요청 예제
curl -H 'authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJQYWxseUNvbkFQSSIsImF1ZCI6IklOS0EiLCJpc3MiOiJQYWxseUNvbiIsImFkbWluIjp0cnVlLCJ1c2VySWQiOiJ0ZXN0dXNlciJ9.p7VJmRryoaSVU2qn9PDuoDRIFxphw0N2786bR6zhELQ' 'https://service.pallycon.com/api/v2/drm/user?api_code=UA003001100&site_id=DEMO&from=2020-03-01&to=2020-03-02
Response.data (Array)
키 | 유형 | 설명 |
---|---|---|
user_id | String | 최종 사용자의 고유 ID |
license_cnt | Int | 해당 사용자가 요청한 DRM 라이선스 수 |
device_cnt | Int | 해당 사용자가 이용한 클라이언트 기기 수 |
success | Int | 성공한 라이선스 요청 수 |
fail | Int | 실패한 라이선스 요청 수 |
- 응답 예제
{
"_links":{
"self":{
"href":"http://service.pallycon.com/api/v2/drm/user"
}
},
"error_code":"0000",
"data":[{
"user_id":"ta5uwrsw",
"license_cnt":1,
"device_cnt":1,
"success":1,
"fail":0
},
{
"user_id":"uuu",
"license_cnt":1729,
"device_cnt":1,
"success":1729,
"fail":0
},
{
"user_id":"5xhsdd36",
"license_cnt":1,
"device_cnt":1,
"success":1,
"fail":0
}],
"count":3
}
}
DRM 클라이언트 기기 조회
이 API는 특정 기간에 DRM 라이선스를 획득한 클라이언트 기기 목록을 검색합니다.
- URL: https://service.pallycon.com/api/v2/drm/device
- Method: GET
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 인코딩된 JWT 데이터 |
api_code | String | Y | API 코드 값 (UA003001100) |
site_id | String | Y | 사이트 ID (네자리 영숫자) |
from | String | N | 검색 기간 시작일 (YYYY-MM-DD) |
to | String | N | 검색 기간 종료일 (YYYY-MM-DD) |
search_keyword | String | N | 검색할 클라이언트 기기 ID |
page_unit | Int | N | 검색 결과 수 지정 (기본 값:25, 최대: 1000) |
page_index | Int | N | 검색 결과 페이지 번호 (결과 수가 page_unit 보다 클 경우) |
- 요청 예제
curl -H 'authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJQYWxseUNvbkFQSSIsImF1ZCI6IklOS0EiLCJpc3MiOiJQYWxseUNvbiIsImFkbWluIjp0cnVlLCJ1c2VySWQiOiJ0ZXN0dXNlciJ9.p7VJmRryoaSVU2qn9PDuoDRIFxphw0N2786bR6zhELQ' 'https://service.pallycon.com/api/v2/drm/device?api_code=UA003001100&site_id=DEMO&from=2020-03-01&to=2020-03-02
Response.data (Array)
키 | 유형 | 설명 |
---|---|---|
device_id | String | 클라이언트 기기의 고유 ID |
device_model | String | 클라이언트 기기 모델명 |
license_cnt | Int | 해당 기기에서 요청된 DRM 라이선스 수 |
success | Int | 성공한 라이선스 요청 수 |
fail | Int | 실패한 라이선스 요청 수 |
- 응답 예제
{
"_links":{
"self":{
"href":"http://service.pallycon.com/api/v2/drm/device"
}
},
"error_code":"0000",
"data":[{
"device_id":"ea2e698d95b28441422f4997d6ffd5450a",
"device_model":"ChromeCDM-Windows-2",
"license_cnt":1732,
"success":1732,
"fail":0
},
{
"device_id":"13406080a61bef63aaa1d99a32f51e31c804e659",
"device_model":"iOS-device",
"license_cnt":1729,
"success":1729,
"fail":0
},
{
"device_id":"ab3dd736cd46607abbd81ec942e07a620a",
"device_model":"ChromeCDM-Mac-2",
"license_cnt":1,
"success":1,
"fail":0
},
{
"device_id":"d838f619-69e0-4e3a-9b48-5a1b52ce287a",
"device_model":"playready-device",
"license_cnt":1728,
"success":1728,
"fail":0
}],
"count":4
}
CID 별 DRM 라이선스 조회
이 API는 특정 기간 동안 각 CID(콘텐츠 ID)에 대해 발급된 라이선스 수를 검색합니다.
- URL: https://service.pallycon.com/api/v2/drm/cid-drmLicense
- Method: GET
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 인코딩된 JWT 데이터 |
api_code | String | Y | API 코드 값 (UA003001100) |
site_id | String | Y | 사이트 ID (네자리 영숫자) |
from | String | N | 검색 기간 시작일 (YYYY-MM-DD) |
to | String | N | 검색 기간 종료일 (YYYY-MM-DD) |
search_status | String | N | 라이선스 발급 상태로 조회 (success or fail) |
page_unit | Int | N | 검색 결과 수 지정 (기본 값:25, 최대: 1000) |
page_index | Int | N | 검색 결과 페이지 번호 (결과 수가 page_unit 보다 클 경우) |
- 요청 예제
curl -H 'authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJQYWxseUNvbkFQSSIsImF1ZCI6IklOS0EiLCJpc3MiOiJQYWxseUNvbiIsImFkbWluIjp0cnVlLCJ1c2VySWQiOiJ0ZXN0dXNlciJ9.p7VJmRryoaSVU2qn9PDuoDRIFxphw0N2786bR6zhELQ' 'https://service.pallycon.com/api/v2/drm/cid-drmLicense?api_code=UA003001100&site_id=DEMO&from=2020-03-01&to=2020-03-02
Response.data (Array)
키 | 유형 | 설명 |
---|---|---|
cid | String | 콘텐츠의 고유 ID |
license_cnt | Int | 해당 콘텐츠에 발급된 DRM 라이선스 수 |
- 응답 예제
{
"_links":{
"self":{
"href":"http://service.pallycon.com/api/v2/drm/cid-drmLicense"
}
},
"error_code":"0000",
"data":[
{
"cid":"bigbuckbunny",
"license_cnt":1733
},
{
"cid":"configtest",
"license_cnt":1729
}],
"count":2
}
콘텐츠 및 사용자 별 라이선스 발급 수 조회
이 API는 특정 기간에 CID(콘텐츠 ID) 별로 최종 사용자마다 라이선스를 획득한 수를 검색합니다. (해당 콘텐츠를 해당 사용자가 반복 재생한 횟수)
- URL: https://service.pallycon.com/api/v2/drm/cid-user
- Method: GET
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 인코딩된 JWT 데이터 |
api_code | String | Y | API 코드 값 (UA003001100) |
site_id | String | Y | 사이트 ID (네자리 영숫자) |
cid | String | Y | 콘텐츠의 고유 ID |
from | String | N | 검색 기간 시작일 (YYYY-MM-DD) |
to | String | N | 검색 기간 종료일 (YYYY-MM-DD) |
search_status | String | N | 라이선스 발급 상태로 조회 (success or fail) |
page_unit | Int | N | 검색 결과 수 지정 (기본 값:25, 최대: 1000) |
page_index | Int | N | 검색 결과 페이지 번호 (결과 수가 page_unit 보다 클 경우) |
- 요청 예제
curl -H 'authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJQYWxseUNvbkFQSSIsImF1ZCI6IklOS0EiLCJpc3MiOiJQYWxseUNvbiIsImFkbWluIjp0cnVlLCJ1c2VySWQiOiJ0ZXN0dXNlciJ9.p7VJmRryoaSVU2qn9PDuoDRIFxphw0N2786bR6zhELQ' 'https://service.pallycon.com/api/v2/drm/cid-user?api_code=UA003001100&site_id=DEMO&cid=bigbuckbunny&from=2020-03-01&to=2020-03-02
Response.data (Array)
키 | 유형 | 설명 |
---|---|---|
cid | String | 콘텐츠의 고유 ID |
user_id | String | 최종 사용자의 고유 ID |
license_cnt | Int | 해당 사용자가 해당 콘텐츠에 대해 발급받은 라이선스 수 (재생 횟수) |
- Response Sample
{
"_links":{
"self":{
"href":"http://service.pallycon.com/api/v2/drm/cid-user"
}
},
"error_code":"0000",
"data":[{
"cid":"bigbuckbunny",
"user_id":"test-user",
"license_cnt":1728
},
{
"cid":"bigbuckbunny",
"user_id":"rd1z7c08",
"license_cnt":1
}],
"count":2
}
DRM 패키징 이력 조회
이 API는 특정 기간의 DRM 패키징 이력을 검색합니다.
- URL: https://service.pallycon.com/api/v2/drm/pack
- Method: GET
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 인코딩된 JWT 데이터 |
api_code | String | Y | API 코드 값 (UA003001100) |
site_id | String | Y | 사이트 ID (네자리 영숫자) |
from | String | N | 검색 기간 시작일 (YYYY-MM-DD) |
to | String | N | 검색 기간 종료일 (YYYY-MM-DD) |
search_condition | String | N | 검색 카테고리 (cid, drm_type, user_id, device_id, device_model) |
search_keyword | String | N | 카테고리 별 검색 키워드 (valid when search_condition is set) |
last_created_time_cid | String | N | 조회 리스트 중 마지막 CID 값 (페이지 처리 용) |
last_update_time | String | N | 조회 리스트 중 마지막 update_time (페이지 처리 용) |
last_created_time_cid
및last_update_time
이 설정되면 응답에는 설정된 값 이후의 데이터만 포함됩니다.
Response.data (Array)
키 | 유형 | 설명 |
---|---|---|
site_id | String | 사이트 ID (네자리 영숫자) |
cid | String | 콘텐츠의 고유 ID |
track | String | 콘텐츠 트랙 정보 (기본값: HD) |
created_time | String | 최초 패키징 시간 (YYYYMMDDhhmmss) |
update_time | String | 마지막 재패키징 시간 (YYYYMMDDhhmmss) |
DRM 연동 정보 조회
이 API는 DRM 연동과 관련된 정보를 조회합니다.
- URL: https://service.pallycon.com/api/v2/drm/setting/{site_id}
- Method: GET
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 인코딩된 JWT 데이터 |
site_id | Path Variable | Y | 사이트 ID (네자리 영숫자) |
api_code | String | Y | API 코드 값 (UA003004100) |
Response.data
키 | 유형 | 설명 |
---|---|---|
site_id | String | 사이트 ID (네자리 영숫자) |
site_key | String | 서비스 사이트 연동에 필요한 암호화 키 (Base64 인코딩된 32바이트 문자열) |
access_key | String | 추가적인 연동에 사용되는 암호화 키 |
license_callback_url | String | 콜백 방식 라이선스 연동에 사용되는 웹 페이지 URL (지원 중단) |
package_callback_url | String | 콜백 방식 패키져 연동에 사용되는 웹 페이지 URL (지원 중단) |
kms_token | String | CPIX, SPEKE API 등 KMS 연동에 사용되는 토큰 |
token_duration | Int | 라이선스 토큰 유효 기간 (초 단위) |
iv | String | 사이트 별로 지정되는 고유 IV(Initial Vector) 값. DRM 패키징에 사용 |
DRM 연동 정보 변경
이 API는 DRM과 관련한 정보를 업데이트합니다.
- URL: https://service.pallycon.com/api/v2/drm/setting/{site_id}
- Method: PUT
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 인코딩된 JWT 데이터 |
site_id | Path Variable | Y | 사이트 ID (네자리 영숫자) |
api_code | String | Y | API 코드 값 (UA003004100) |
license_callback_url | String | N | 콜백 방식 라이선스 연동에 사용되는 웹 페이지 URL (지원 중단됨) |
package_callback_url | String | N | 콜백 방식 패키져 연동에 사용되는 웹 페이지 URL (지원 중단됨) |
token_duration | Int | N | 라이선스 토큰 유효 기간 (초 단위) |
Response
이 API는 기본 응답 데이터를 응답합니다.
FairPlay 인증서 등록
이 API는 애플로부터 발급받은 FPS 인증서를 PallyCon 서비스에 등록합니다.
- URL: https://service.pallycon.com/api/v2/drm/setting/fpscert/{site_id}
- Method: POST
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 인코딩된 JWT 데이터 |
site_id | Path Variable | Y | 사이트 ID (네자리 영숫자) |
api_code | String | Y | API 코드 값 (UA003004200) |
ask | String | Y | Application secret key (ASK) 문자열 |
key_pw | String | Y | 개인 키 암호 (최대 32 바이트) |
fps_cert | blob | Y | FPS 인증서 파일 (.der 또는 .cer) |
private_key | blob | Y | 개인 키 파일 (.pem) |
Response
이 API는 기본 응답 데이터를 응답합니다.
MAL, MAU, MAD 수치 조회
이 API는 특정 날짜에 발생한 MAL(월간 라이선스 발급 수), MAU(월간 활성 사용자 수) 및 MAD(월간 활성 기기 대수) 수치를 조회합니다.
- URL: https://service.pallycon.com/api/v2/drm/statistics/targetDate
- Method: GET
MAD의 경우, 데스크탑 크롬 브라우저의 PC 별 고유 ID를 생성하려면 플레이어에서 persistentStateRequired
를 설정해야 합니다. (HTML Player 샘플 소스 참조)
해당 설정을 하지 않으면 모든 PC의 크롬 브라우저에 동일한 ID가 적용되어 1개의 기기로 MAD에 반영됩니다.
Request
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
Authorization | Header | Y | 회원 정보가 있는 암호화된 jwt |
api_code | String | Y | api 코드 : UA003003100 |
site_id | String | Y | 사이트 아이디 |
target_date | String | Y | 조회 대상 날짜 (YYYY-MM-DD) |
Response.data (Object)
키 | 유형 | 설명 |
---|---|---|
license_cnt | Integer | MAL (Monthly Active Licenses) |
user_acc_cnt | Integer | MAU (Monthly Active Users) |
device_acc_cnt | Integer | MAD (Monthly Active Devices) |
target_date | Integer | 조회 대상 날짜 |