# Table of Contents - [참고사항 | CHZZK](#-chzzk) - [User | CHZZK](#user-chzzk) - [Channel | CHZZK](#channel-chzzk) - [Updates | CHZZK](#updates-chzzk) - [Chzzk AD | CHZZK](#chzzk-ad-chzzk) - [Authorization | CHZZK](#authorization-chzzk) - [드롭스 캠페인 생성 및 관리 가이드 | CHZZK](#-chzzk) - [Brand Guides | CHZZK](#brand-guides-chzzk) - [Live | CHZZK](#live-chzzk) - [드롭스 연동 및 절차 | CHZZK](#-chzzk) - [Category | CHZZK](#category-chzzk) - [Drops | CHZZK](#drops-chzzk) - [Chat | CHZZK](#chat-chzzk) - [드롭스 개요 | CHZZK](#-chzzk) - [Session | CHZZK](#session-chzzk) - [Webhook Event | CHZZK](#webhook-event-chzzk) - [About CHZZK Developers | CHZZK](#about-chzzk-developers-chzzk) --- # 참고사항 | CHZZK 치지직 Open API 이용 시 알아야 할 규격을 설명합니다. [](#open-api) Open API 도메인 ------------------------------- Copy https://openapi.chzzk.naver.com [](#api) API 호출 -------------------- 특정 API Scope를 호출하려면 Access Token 또는 Client 인증이 필요합니다. Access Token 인증이 필요한 API Scope 호출 시 Authorization 헤더에 Bearer와 함께 Access Token을 지정해야 합니다. **주의사항** Access Token 인증 API 사용 시 Bearer를 반드시 명시해야 하며, Bearer와 Access Token 사이에 공백( )을 빠뜨리지 않도록 주의해야 합니다. ### [](#access-token-api) Access Token 인증 API **Request Header** Key Type Example Authorization String Bearer FFok65zQFQVcFvH2eJ7SS7SBFlTXt0EZ10L5XXXXXXXX Content-Type String application/json ### [](#client-api) Client 인증 API **Request Header** Key Type Example Client-Id String fefb6bbb-00c2-497c-afc2-XXXXXXXXXXXX Client-Secret String VeIMuc9XGle7PSxIVYNwPpI2OEk\_9gXoW\_XXXXXXXXX Content-Type String application/json [](#api-1) API 공통 응답 구조 ---------------------------- **성공 시** Copy { "code": 200, "message": null, "content": {responseBody} } **실패 시** Copy { "code": "integer", "message": "string" } [](#error-code) Error Code ------------------------------- HTTP Code Error Message Description 400 잘못된 값을 입력했습니다. 요청 파라미터 에러 401 UNAUTHORIZED 필요 인증 정보 없음 401 INVALID\_CLIENT Client 정보 비정상 401 INVALID\_TOKEN 존재하지 않는 token, 기한 만료 ( Access Token, Refresh\_token) - 만료된 Access Token - 만료된 Refresh Token - Delete 요청 된 Access Token - 존재하지 않는 Token 403 FORBIDDEN 호출 권한 없음 404 NOT\_FOUND 검색 결과 없음 429 TOO\_MANY\_REQUESTS Quota 제한 초과 500 INTERNAL\_SERVER\_ERROR 서버 내부 에러 [PreviousAuthorization](/chzzk/chzzk-api/authorization) [NextSession](/chzzk/chzzk-api/session) Last updated 1 month ago --- # User | CHZZK 유저 API로 로그인 유저의 치지직 채널 정보를 조회할 수 있습니다. 유저 API를 호출하려면 사용자 계정으로 인증하여 얻은 Access Token이 필요합니다. API Scope는 `유저 정보 조회`입니다. [](#undefined) 유저 정보 조회 ---------------------------- 유저의 채널 정보를 조회할 수 있습니다. 치지직의 모든 유저는 채널을 소유합니다. 채널ID는 채널의 고유 식별자이며 유저의 고유 식별자로 사용할 수 있습니다. HTTP Request Description **GET /open/v1/users/me** 유저 정보 조회 **Response Body** Key Type Example channelId String 909501f048b44cf0d5c1d28XXXXXXXX channelName String 치지직유저 3121 [PreviousSession](/chzzk/chzzk-api/session) [NextChannel](/chzzk/chzzk-api/channel) Last updated 3 days ago --- # Channel | CHZZK 채널 정보 조회 API로 채널 정보를 조회할 수 있습니다. [](#undefined) 채널 정보 조회 ---------------------------- 채널 정보를 조회할 수 있습니다. 채널 정보 조회 API를 호출하려면 애플리케이션 등록 후 Client 인증이 필요합니다. ([Client 인증 API 참조](https://chzzk.gitbook.io/chzzk/chzzk-api/tips#client-api) ) HTTP Request Description **GET /open/v1/channels** 채널 정보 조회 **Request Param** Field Type required Description channelIds String\[\] \* 조회할 채널 ID 목록. 최대 20개까지 요청 가능 **Response Body** Field Type Description data Object\[\] 요청한 채널 정보 목록. 일치하는 채널을 찾지 못할 경우 결과 미반환 channelId String 채널 식별자 channelName String 채널 이름 channelImageUrl String 채널 이미지 URL followerCount Int 채널의 팔로워 수 [PreviousUser](/chzzk/chzzk-api/user) [NextCategory](/chzzk/chzzk-api/category) Last updated 1 month ago --- # Updates | CHZZK 날짜 내용 2025.02.06 Session 추가 * 세션 생성 및 조회 * 이벤트 구독 및 취소 2024.12.20 개발자센터 런칭 및 OpenAPI 제공 [PreviousAbout CHZZK Developers](/chzzk) [NextAuthorization](/chzzk/chzzk-api/authorization) Last updated 2 days ago --- # Chzzk AD | CHZZK [PreviousBrand Guides](/chzzk/resources/brand-guides) Last updated 1 month ago 치지직 유료광고를 통해 서비스 또는 드롭스 캠페인을 더 홍보할 수 있어요. 지면별 상세 내용은 내용은 아래 '치지직 광고 확장품 상품 소개서' 를 참고해 주세요. 노출 지면별 단가는 dl\_gamead@navercorp.com 로 문의 부탁드립니다. [치지직 광고 확장품 상품 소개서 확인하기](https://nosp.da.naver.com/center/api/dafile/download?fileNm=치지직_광고_확장팩_상품소개서_24_12.pdf) \*아래 '6. 추천라이브' 지면의 자세한 내용 및 단가는 별도 문의해 주세요. 1\. 치지직 메인화면 상단에서 독보적으로 뷰어쉽 확보 및 브랜딩 할 수 있는 '프리미엄 라이브' 광고 2\. 치지직 메인화면 및 VOD 영상 하단에 노출되는 '배너 패키지' 3\. 치지직 진입 시 노출되는 '전면 팝업 배너' 4\. 네이버 게임 통합 DA 5\. 치지직 메인화면에서 특정 게임의 방송을 진행 중인 채널을 모아서 보여주는 '추천라이브' 광고 치지직 메인화면 프리미엄 라이브 예시 치지직 메인화면 배너 예시 치지직 전면 팝업 배너 예시 네이버 게임 통합 DA 예시 치지직 메인화면 추천라이브 예시 ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252FvRRJmAAp70tFtQCxu5nl%252Fimage.png%3Falt%3Dmedia%26token%3D543cf8f7-aca4-4a3a-ae35-a336760b2c55&width=768&dpr=4&quality=100&sign=933282cd&sv=2) ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252FOK7KjV1zduZrnEXdp4Mn%252Fimage.png%3Falt%3Dmedia%26token%3D9c2bb318-ce5e-4ba2-ab5a-d82e4bb0c170&width=768&dpr=4&quality=100&sign=d3fe20d2&sv=2) ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252FLavDOli1fwA4lCypWLbB%252Fimage.png%3Falt%3Dmedia%26token%3D6e18c344-4b2d-4309-bb8b-7a938d360aa6&width=768&dpr=4&quality=100&sign=4b807dc4&sv=2) ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252FmQUK5hECVHuNfUmAbiUL%252Fimage.png%3Falt%3Dmedia%26token%3Dcae0009b-bbc7-4601-be0c-15b407ceff3d&width=768&dpr=4&quality=100&sign=5450b200&sv=2) ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252FXtT5btFOV7WLYY4wCBmR%252Fimage.png%3Falt%3Dmedia%26token%3Ded36147c-806e-4234-a144-2139de733ca4&width=768&dpr=4&quality=100&sign=409dc349&sv=2) --- # Authorization | CHZZK 치지직 Open API 사용과 인증에 관련된 문서입니다. 가이드에 작성된 API 명세와 인증 플로우는 이후 개발 상황에 따라 변경 될 수 있습니다. * * * [](#undefined) 인증 코드 요청 및 발급 --------------------------------- 치지직 Access Token 발급을 위한 인증 코드(Authorization Code)를 요청합니다. 요청 redirectUri 로 Access Token 발급을 위한 code 와 state 가 전달됩니다. 인증 코드를 요청할 도메인은 아래와 같으며, OPEN API와는 다른 별도의 도메인을 사용합니다. \*주의사항: 요청 redirectUri 는 애플리케이션 등록시 입력한 로그인 리디렉션 URL 과 일치해야합니다. **URL Path** Copy GET https://chzzk.naver.com/account-interlock **Request Param** Key Type Required Example clientId String \* fefb6bbb-00c2-497c-afc2-XXXXXXXXXXXX redirectUri String \* http://localhost:8080/api/path state String \* zxclDasdfA25 **Response Parameter** Key Type Example code String ygKEQQk3p0DjUsBjJradJmXXXXXXXX state String zxclDasdfA25 [](#access-token) 치지직 Access Token 발급 ------------------------------------------ Open API 사용 중, 유저 인증을 위한 토큰을 발급 받습니다. Access Token 의 만료기간은 1일, Refresh Token 의 만료기간은 30일 입니다. **URL Path** Copy POST /auth/v1/token **Request Body** Key Type Example grantType String authorization\_code 고정 clientId String fefb6bbb-00c2-497c-afc2-XXXXXXXXXXXX clientSecret String VeIMuc9XGle7PSxIVYNwPpI2OEk\_9gXoW\_XXXXXXXXX code String ygKEQQk3p0DjUsBjJradJmXXXXXXXX state String zxclDasdfA25 **Response Body** Key Type Example accessToken String FFok65zQFQVcFvH2eJ7SS7SBFlTXt0EZ10L5XXXXXXXX refreshToken String NWG05CKHAsz4k4d3PB0wQUV9ugGlp0YuibQ4XXXXXXXX tokenType String Bearer 고정 expiresIn String 3600 [](#access-token-1) 치지직 Access Token 갱신 -------------------------------------------- Access Token은 만료 주기를 갖습니다. 해당 만료 주기가 지나면 해당 Access Token을 사용한 API 호출은 401(INVALID\_TOKEN) 응답을 반환합니다. Access Token이 만료되면, Refresh Token을 통하여 Access Token을 재발급 받아 사용해야 합니다. Refresh Token은 Access Token 보다 긴 만료기간을 가지며, 일회용으로 사용됩니다. Refresh Token 또한 만료되면 Access Token 발급 과정을 통해 새로운 Access Token을 발급받아야 합니다. **URL Path** Copy POST /auth/v1/token **Request Body** Key Type Example grantType String refresh\_token 고정 refreshToken String NWG05CKHAsz4k4d3PB0wQUV9ugGlp0YuibQ4XXXXXXXX clientId String fefb6bbb-00c2-497c-afc2-XXXXXXXXXXXX clientSecret String VeIMuc9XGle7PSxIVYNwPpI2OEk\_9gXoW\_XXXXXXXXX **Response Body** Key Type Example accessToken String motTJ-NZ-fev3cmaTMydzYk\_zyw524C9ZYdNXXXXXXXX refreshToken String EDpM\_1RxiOwhbNBpNUbiuEZOrb7Dbd6Y7rivXXXXXXXX tokenType String Bearer 고정 expiresIn String 3600 scope String 채널 조회 [](#access-token-2) 치지직 Access Token 삭제 -------------------------------------------- 유저가 로그아웃하는 등, 해당 Access Token, Refresh Token 의 revoke 가 필요할 경우 호출합니다. 요청한 Token 과 동일한 인증 과정을 거친 모든 Token 이 제거됩니다. (clientId 와 user 가 동일한 Token) **URL Path** Copy POST /auth/v1/token/revoke **Request Body** Key Type Example clientId String fefb6bbb-00c2-497c-afc2-XXXXXXXXXXXX clientSecret String VeIMuc9XGle7PSxIVYNwPpI2OEk\_9gXoW\_XXXXXXXXX token String motTJ-NZ-fev3cmaTMydzYk\_zyw524C9ZYdNXXXXXXXX tokenTypeHint String * access\_token (default) * refresh\_token [PreviousUpdates](/chzzk/introduction/updates) [Next참고사항](/chzzk/chzzk-api/tips) Last updated 1 month ago --- # 드롭스 캠페인 생성 및 관리 가이드 | CHZZK [PreviousWebhook Event](/chzzk/drops/webhook) [NextBrand Guides](/chzzk/resources/brand-guides) Last updated 1 month ago 드롭스 캠페인을 생성하고 관리하기 위한 가이드 문서입니다. [](#undefined) 파트너 등록 및 관리 어드민 접속 방법 ----------------------------------------- [](#undefined-1) 드롭스 캠페인 생성/관리 ----------------------------------- 파트너 등록 및 어드민 접속을 완료한 경우 드롭스 캠페인을 생성 및 관리할 수 있습니다. 캠페인 생성 및 관리를 위한 상세 내용 가이드는 dl\_chzzk\_drops@navercorp.com 로 요청해 주세요 ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252FM1WuwsovocwTzEPNz04k%252Fimage.png%3Falt%3Dmedia%26token%3D71217fa7-77e2-4cf4-9170-127c4076f7ed&width=768&dpr=4&quality=100&sign=b2129819&sv=2) ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252FDi9vNv9gzBGmmsxiwyLD%252Fimage.png%3Falt%3Dmedia%26token%3D3a9ed7dc-e08f-42f9-87fb-103123541786&width=768&dpr=4&quality=100&sign=a3e0841b&sv=2) ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252F6TddUq8jIniim9pug5GI%252Fimage.png%3Falt%3Dmedia%26token%3Dbc7255d2-d5b2-437f-bc89-3bc2eabfa72d&width=768&dpr=4&quality=100&sign=3b01d31&sv=2) ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252FIKDMZJpcHS9JJjxNSS8P%252Fimage.png%3Falt%3Dmedia%26token%3D2cb93e2b-ac4d-4956-a2a5-a92a2b8dbdef&width=768&dpr=4&quality=100&sign=612233fb&sv=2) ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252FTDrD3PAs8wSMsSSmAz1y%252Fimage.png%3Falt%3Dmedia%26token%3Df65dd920-3e94-4cdd-8dbd-f4e4f8a431b9&width=768&dpr=4&quality=100&sign=8192f2d4&sv=2) --- # Brand Guides | CHZZK [Previous드롭스 캠페인 생성 및 관리 가이드](/chzzk/drops/manual) [NextChzzk AD](/chzzk/resources/chzzk-ad) Last updated 1 month ago 치지직 로고는 브랜드를 대표하는 아이덴티티입니다. 웹사이트, 모바일, 인쇄매체 등 다양한 환경과 목적에 따라 사용할 수 있으며 **임의로 형태, 색상을 변형하여 사용할 수 없습니다.** 또한, 치지직과 사전 협의 없이 협력, 제휴, 지원 등의 오인 또는 혼동을 주거나 브랜드의 가치를 훼손하는 사용은 금지하고 있으며, **상업적인 목적으로 사용할 수 없습니다.** 치지직 브랜드를 사용하기 앞서 아래 가이드라인의 내용을 숙지하고 항목별 사용 규정을 준수해 주시길 바랍니다. **1) 기본형 로고(국문)** ([다운로드](https://csmail.naver.com/naver/alias.help?code=DGc73GW8Iv4q) ) **2) 기본형 로고(영문)** ([다운로드](https://csmail.naver.com/naver/alias.help?code=EQ0rE7HP67hc) ) **3) 조합형 로고** ([다운로드](https://csmail.naver.com/naver/alias.help?code=v2e6zv52ptUu) ) 조합형 로고가 필요할 경우 적용 환경을 고려해 선택적으로 활용할 수 있습니다. **4) 권장하지 않는 사용** 일관된 브랜드 커뮤니케이션을 위해 로고 사용 시 아래 사항들을 지양해 주시기 바랍니다. **5) 아이콘** ([다운로드](https://csmail.naver.com/naver/alias.help?code=3RlYiJrRsg3a) ) **6) 컬러 규정** 명시된 컬러 가이드게 맞게 사용하도록합니다. ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252FVCYkY1ZbXIxNP6wth864%252F01_%25EA%25B8%25B0%25EB%25B3%25B8%25ED%2598%2595%28%25EA%25B5%25AD%25EB%25AC%25B8%29.png%3Falt%3Dmedia%26token%3Dec9bafb8-fc8b-4a25-88da-157f8ceb139c&width=768&dpr=4&quality=100&sign=f2dedd22&sv=2) ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252F0O7a9eZnI8vU0tPrJXCK%252F02_%25EA%25B8%25B0%25EB%25B3%25B8%25ED%2598%2595%28%25EC%2598%2581%25EB%25AC%25B8%29.png%3Falt%3Dmedia%26token%3D432f6cfb-4ad0-4d3e-b5e6-ed0ef046a0d1&width=768&dpr=4&quality=100&sign=1325df95&sv=2) ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252FzRxIIq8oGM9PquDc5vLE%252F03_%25EC%25A1%25B0%25ED%2595%25A9%25ED%2598%2595%2520%25EB%25A1%259C%25EA%25B3%25A0.png%3Falt%3Dmedia%26token%3D95e98c84-2879-4676-9c04-dcbf3613082f&width=768&dpr=4&quality=100&sign=4f918b5d&sv=2) ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252FaP5y6ipgHTr0ojR9ll56%252F04_%25EA%25B6%258C%25EC%259E%25A5%25ED%2595%2598%25EC%25A7%2580%25EC%2595%258A%25EB%258A%2594%2520%25EC%2582%25AC%25EC%259A%25A9.png%3Falt%3Dmedia%26token%3D80ec3e9c-7d5a-4f42-9379-7f943bf54fbf&width=768&dpr=4&quality=100&sign=2776e6af&sv=2) ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252FxR7fq88vAmCpsmuF6752%252F05_%25EC%2595%2584%25EC%259D%25B4%25EC%25BD%2598.png%3Falt%3Dmedia%26token%3Df78b352b-fa7f-4144-9d43-9b87487826eb&width=768&dpr=4&quality=100&sign=4a4aea42&sv=2) ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252FRZa5gEd8KpoN6yCnx6DS%252F06_%25EB%25B8%258C%25EB%259E%259C%25EB%2593%259C%2520%25EC%25BB%25AC%25EB%259F%25AC.png%3Falt%3Dmedia%26token%3D720ff5f9-a5e7-4e48-96b5-67083b81e116&width=768&dpr=4&quality=100&sign=9fb146cb&sv=2) --- # Live | CHZZK 라이브 API로 전체 라이브 목록 조회, 방송 스트림키 조회, 방송 설정 조회, 방송 설정을 변경할 수 있습니다. 라이브 API 중 아래 API Scope를 호출하려면 사용자 계정으로 인증하여 얻은 Access Token이 필요합니다. API Scope는 `방송 스트림키 조회`, `방송 설정 조회`, `방송 설정 변경`입니다. * * * [](#undefined) 라이브 목록 조회 ----------------------------- 현재 진행 중인 라이브의 전체 목록을 조회할 수 있습니다. 라이브 목록 조회 API를 호출하려면 애플리케이션 등록 후 Client 인증이 필요합니다. ([Client 인증 API 참조](https://chzzk.gitbook.io/chzzk/chzzk-api/tips#client-api) ) HTTP Request Description **GET /open/v1/lives** 라이브 목록 조회 **Request Param** Field Type Required Description size Int Optional 조회할 라이브 개수. 최소 1 ~ 최대 20 요청 가능 디폴트 값 : 20 next String Optional 다음 목록을 호출하기 위한 값입니다. api 응답 중 page.next 값을 통해 호출 가능 **Response Body** Field Type Description data Object\[\] 라이브 목록 결과. 시청자 수 높은 순 정렬 liveId Int 라이브 식별자 liveTitle String 라이브 제목 liveThumbnailImageUrl String 라이브 썸네일로 사용되는 이미지 URL concurrentUserCount Int 라이브 현재 시청자 수 openDate String 라이브 시작 시간 adult boolean 연령 제한 설정 여부 tags String\[\] 라이브에 설정된 태그 목록 categoryType String 카테고리 종류 * GAME * SPORTS * ETC liveCategory String 라이브 카테고리 식별자 liveCategoryValue String 라이브 카테고리 이름 channelId String 채널 ID(채널 식별자) channelName String 채널명 channelImageUrl String 채널 이미지 URL page Object next String 다음 목록 호출을 위한 값 [](#undefined-1) 방송 스트림키 조회 -------------------------------- 스트리밍 채널의 스트림키를 조회할 수 있습니다. HTTP Request Description **GET /open/v1/streams/key** 방송 스트림키 조회 **Response Body** Field Type Description streamKey String 스트림키 값 [](#undefined-2) 방송 설정 조회 ------------------------------ 스트리밍 채널의 방송 설정을 조회할 수 있습니다. HTTP Request Description **GET /open/v1/lives/setting** 방송 설정 조회 **Response Body** Field Type Description defaultLiveTitle String 라이브 제목 category Object 라이브 카테고리 categoryType String 카테고리 종류 * GAME * SPORTS * ETC categoryId String 카테고리 식별자 categoryValue String 카테고리 이름 posterImageUrl String 카테고리 이미지 URL tags String\[\] 라이브 태그 목록 [](#undefined-3) 방송 설정 변경 ------------------------------ 스트리밍 채널의 방송 설정을 변경할 수 있습니다. 설정 변경 시 API 요청을 통해 필요한 특정 값만 변경하는 것도 가능합니다. HTTP Request Description **PATCH /open/v1/lives/setting** 방송 설정 변경 **Request Body** Field Type Required Description defaultLiveTitle String optional 라이브 제목. 빈 값으로 설정 불가 categoryType String optional 카테고리 종류. 유효한 카테고리 종류로만 설정 가능 * GAME * SPORTS * ETC categoryId String optional 카테고리 식별자. 유효한 카테고리 종류로만 설정 가능. ""으로 전송할 경우 카테고리 설정 제거 tags String\[\] optional 라이브 태그 목록. empty list로 전송할 경우 태그 설정 제거. 공백 및 특수문자 비허용 [PreviousCategory](/chzzk/chzzk-api/category) [NextChat](/chzzk/chzzk-api/chat) Last updated 3 days ago --- # 드롭스 연동 및 절차 | CHZZK 아래 탭을 선택하여 유형별 드롭스 연동 및 진행 절차를 확인해 주세요. 인앱보상 유형쿠폰코드 유형 1. **치지직 개발자 센터에 애플리케이션 등록** [https://developers.chzzk.naver.com](https://developers.chzzk.naver.com) 에 접속 후, 애플리케이션을 생성 및 드롭스 API 사용을 신청해 주세요. 드롭스 API의 경우 게임사, 퍼블리셔, 또는 제작자만 승인받을 수 있습니다. \*게임사 또는 퍼블리셔는 법인을 인증하기 위해 네이버 단체 ID로 개발자 센터에 로그인 및 치지직 스튜디오에서 비즈니스 채널을 신청해 주세요.   2. **치지직에서 드롭스 캠페인을 생성/관리할 수 있는 네이버 파트너 어드민 계정 신청** 드롭스 캠페인을 생성/관리하기 위해서는 네이버 파트너 어드민인 Friend 서비스에 접속할 수 있는 계정을 생성하고 드롭스 관리 권한을 부여받아야 합니다. 계정 생성 및 권한 부여를 위해 아래 네이버 폼에 정보를 입력해 주세요. 이미 기존에 Friends 계정에 있는 게임사의 경우에도 드롭스 캠페인 관리 권한을 부여받기 위해서는 아래 네이버 폼에 정보를 입력해 주세요. \*폼에 입력해주신 정보 확인 후, 파트너 어드민 계정 초대 메일을 발송하게 됩니다. 해당 절차는 최대 1~2일 정도가 소요될 수 있습니다. ▶ 파트너 어드민 계정 생성 및 드롭스 권한 부여 신청하기 : [https://naver.me/GalloVwA](https://naver.me/GalloVwA)   3. **인앱보상 리워드 지급을 위한 기술적인 적용** 아래 가이드를 참고하여 기술 연동을 진행해 주세요. Webhook 이벤트만로 드롭스 지급이 가능합니다. 보다 더 정확한 지급 여부 검증을 위해 드롭스 API까지 추가로 사용할 수 있습니다. ▶ [Webhook 가이드](/chzzk/drops/webhook) ▶ [드롭스 API 가이드](/chzzk/drops/overview)   4. **Friends 서비스에 접속 후 드롭스 캠페인 생성** 파트너 어드민인 Friend 서비스에 접속하여 드롭스 캠페인을 생성 및 관리할 수 있으며, 테스트 캠페인도 생성할 수 있습니다. 또한 파트너 어드민에서 API 호출 테스트, 인앱보상 드롭스 리워드의 지급 테스트 등도 진행 가능합니다. 캠페인 생성/관리 관련한 자세한 내용은 '[드롭스 캠페인 생성 및 관리 가이드](/chzzk/drops/manual) '를 참고해 주세요. 1. **치지직 개발자 센터에 애플리케이션 등록** [https://developers.chzzk.naver.com](https://developers.chzzk.naver.com) 에 접속 후, 애플리케이션을 생성해 주세요. \*게임사 또는 퍼블리셔는 법인을 인증하기 위해 네이버 단체 ID로 개발자 센터에 로그인 및 치지직 스튜디오에서 비즈니스 채널을 신청해 주세요.   2. **치지직에서 드롭스 캠페인을 생성/관리할 수 있는 네이버 파트너 어드민 계정 신청** 드롭스 캠페인을 생성/관리하기 위해서는 네이버 파트너 어드민인 Friend 서비스에 접속할 수 있는 계정을 생성하고 드롭스 관리 권한을 부여받아야 합니다. 계정 생성 및 권한 부여를 위해 아래 네이버 폼에 정보를 입력해 주세요. 이미 기존에 Friends 계정에 있는 게임사의 경우에도 드롭스 캠페인 관리 권한을 부여받기 위해서는 아래 네이버 폼에 정보를 입력해 주세요. \*폼에 입력해주신 정보 확인 후, 파트너 어드민 계정 초대 메일을 발송하게 됩니다. 해당 절차는 최대 1~2일 정도가 소요될 수 있습니다. ▶ 파트너 어드민 계정 생성 및 드롭스 권한 부여 신청하기 : [https://naver.me/GalloVwA](https://naver.me/GalloVwA)   3. **Friends 서비스에 접속 후 드롭스 캠페인 생성** 파트너 어드민인 Friend 서비스에 접속하여 드롭스 캠페인을 생성 및 관리할 수 있으며, 테스트 캠페인도 생성할 수 있습니다. 또한 파트너 어드민에서 쿠폰코드 드롭스 리워드의 지급 테스트도 가능합니다. 캠페인 생성/관리 관련한 자세한 내용은 '[드롭스 캠페인 생성 및 관리 가이드](/chzzk/drops/manual) '를 참고해 주세요. [Previous드롭스 개요](/chzzk/drops/overview) [NextWebhook Event](/chzzk/drops/webhook) Last updated 19 days ago --- # Category | CHZZK 카테고리 검색 API로 카테고리 목록 및 정보를 조회할 수 있습니다. 방송은 개별 게임 카테고리 또는 종합 게임, 데모 게임, 고전 게임, 스포츠, 축구, 야구, talk, ASMR, 음악/노래, 그림/아트, 운동/건강, 과학/기술, 시사/경제, 먹방/쿡방, 뷰티, 여행/캠페인 카테고리로 분류될 수 있습니다. [](#undefined) 카테고리 검색 --------------------------- 카테고리를 검색하여 목록 및 정보를 조회할 수 있습니다. 카테고리 검색 API를 호출하려면 애플리케이션 등록 후 Client 인증이 필요합니다. ([Client 인증 API 참조](https://chzzk.gitbook.io/chzzk/chzzk-api/tips#client-api) ) HTTP Request Description **GET /open/v1/categories/search** 카테고리 검색 **Request Param** Field Type required Description size Int optional 조회할 카테고리 개수. 최소 1 ~ 최대 50 요청 가능 디폴트 값 : 20 query String \* 검색할 카테고리 이름. 해당 값을 포함하는 카테고리 목록 반환 **Response Body** Field Type Description data Object\[\] 카테고리 목록 결과 categoryType String 카테고리 종류 * GAME * SPORTS * ETC categoryId String 카테고리 ID(카테고리 식별자) categoryValue String 카테고리 이름 posterImageUrl String 카테고리 이미지 URL [PreviousChannel](/chzzk/chzzk-api/channel) [NextLive](/chzzk/chzzk-api/live) Last updated 1 month ago --- # Drops | CHZZK 치지직에서 인앱보상 유형의 드롭스 이벤트 진행 시 지급 여부 검증을 위한 가이드 문서입니다. 드롭스의 기본적인 설명 및 연동 가이드는 다음 문서를 참고해 주세요. * [드롭스 개요](/chzzk/drops/overview) * [드롭스 연동 및 절차](/chzzk/drops/guide) [](#id-1.1) 1.1 리워드 지급 요청 이벤트 받기 ------------------------------------- 치지직에서 사용자가 드롭스 리워드를 획득하는 과정에서, 게임사에 지급 요청을 할 수 있습니다. 이때 치지직에서는 등록된 게임사의 webhook URL로 notification 메시지를 전달합니다. \*Note : 상세 내용은 ‘치지직 Webhook Event 가이드’ 문서를 참고해주세요. notification 메시지는 별도 callback을 요구하지 않습니다. 따라서 드롭스 리워드 지급 상태를 변경하기 위해서는 드롭스 리워드 지급 API를 호출해야 합니다. [](#id-1.2-api) 1.2 드롭스 리워드 지급 요청 조회 API --------------------------------------------- 치지직 사용자의 드롭스 리워드 지급 요청을 조회합니다. 드롭스 API를 호출하기 위해서는 드롭스 API Scope 신청이 필요합니다. 해당 API Scope는 개발자 센터에 로그인된 사용자가 단체 ID로 법인 인증된 사용자여야만 신청할 수 있습니다. 드롭스 리워드 지급 요청 API를 호출하려면 애플리케이션 등록 후 Client 인증이 필요합니다. ([Client 인증 API 참조](https://chzzk.gitbook.io/chzzk/chzzk-api/tips#client-api) ) HTTP Request Description **GET /open/v1/drops/reward-claims** 드롭스 리워드 지급 요청 조회 **Request Param** Field Type Required Description page Object Optional 페이징 조회를 위해 사용 from String Optional 페이징 조회 시, 조회 첫 기준 식별자 size Int Optional 페이징 조회 시, 조회 할 전체 크기. 기본 20 claimId String Optional 조회할 지급 요청 ID. 콤마(,)로 구분된 배열로 최대 100개까지 요청 가능합니다. channelId String Optional 조회할 유저의 채널 ID campaignId or categoryId String Optional 특정 캠페인 및 카테고리로 조회할 때 조건으로 사용합니다. 동시에 두가지 조건을 사용할 수 없습니다. * campaignId: 조회할 드롭스 캠페인 ID * category: 치지직 카테고리 기준, 조회할 방송(게임) 카테고리 ID fulfillmentState String Optional 조회할 리워드 상태 조건. 명시되지 않으면 모든 상태에 대해 조회합니다. * `CLAIMED`: 지급 요청된 리워드 * `FULFILLED`: 지급 완료 **Response Body** Field Type Required Description data Object\[\] \* 응답 정보가 담긴 객체 배열. 조회 결과가 없으면 빈 배열이 응답될 수 있습니다. claimId String \* 드롭스 캠페인 지급 요청 ID campaignId String \* 드롭스 캠페인 ID rewardId String \* 드롭스 캠페인에 포함된 리워드 ID categoryId String \* 드롭스 캠페인에 할당된 카테고리 ID categoryName String \* 드롭스 캠페인에 할당된 노출 가능한 카테고리 이름 channelId String \* 사용자의 치지직 채널 ID fulfillmentState String \* 조회할 리워드 상태 조건 Ÿ CLAIMED: 지급 요청된 리워드 Ÿ FULFILLED: 지급 완료 claimedDate String \* 마지막으로 지급 요청된 시간. RFC3339 형식 UTC 시간 updatedDate String \* 마지막으로 fulfillmentState 값이 변경된 시간. RFC3339 형식 UTC 시간 page Object \* 페이징 조회를 위해 사용. cursor String Optional 페이징 조회 시, 다음 조회 시 page.from으로 사용. Request Param에서 claimId 항목이 정의된 경우 값이 없거나 빈 문자열일 수 있습니다. Copy { "data": [\ {\ "claimId": "1ce167db-8c58-4a37-8662-48d4e2398503",\ "campaignId": "bb3a5e21-b18a-4b31-851b-adbecd7dfae5",\ "rewardId": "068598a1-36b2-4bb4-ab8b-dd875e621862",\ "categoryId": "CATEGORY_CHZZK",\ "categoryName": "치지직",\ "channelId": "34d7ff19-1b63-4b32-85fb-d44880195533",\ "fulfillmentState": "CLAIMED",\ "claimedDate": "2024-08-01T09:20:26Z",\ "updatedDate": "2024-08-01T09:20:26Z"\ },\ {\ "claimId": "6dd13087-d811-479d-8c4d-52d9f3a54c24",\ "campaignId": "bb3a5e21-b18a-4b31-851b-adbecd7dfae5",\ "rewardId": "13708b6d-e0ba-4180-982b-f16aa3521d15",\ "categoryId": "CATEGORY_CHZZK",\ "categoryName": "치지직",\ "channelId": "34d7ff19-1b63-4b32-85fb-d44880195533",\ "fulfillmentState": "FULFILLED",\ "claimedDate": "2024-08-01T09:21:26Z",\ "updatedDate": "2024-08-01T09:22:26Z"\ },\ {\ "claimId": "477fe295-30c2-4670-a3a6-6ad8305d36ad",\ "campaignId": "bb3a5e21-b18a-4b31-851b-adbecd7dfae5",\ "rewardId": "13708b6d-e0ba-4180-982b-f16aa3521d15",\ "categoryId": "CATEGORY_CHZZK",\ "categoryName": "치지직",\ "channelId": "991cd681-527d-43e5-9758-adae7905a005",\ "fulfillmentState": "FULFILLED",\ "claimedDate": "2024-08-01T09:22:26Z",\ "updatedDate": "2024-08-01T09:23:26Z"\ }\ ], "page": { "cursor": "2af178e3-a620-43da-b4b6-90fe11fa0737" } } [](#id-1.3-api) 1.3 드롭스 리워드 지급 API --------------------------------------- 치지직 사용자의 드롭스 리워드의 지급 상태를 관리합니다. 드롭스 API를 호출하기 위해서는 드롭스 API Scope 신청이 필요합니다. 해당 API Scope는 개발자 센터에 로그인된 사용자가 단체 ID로 법인 인증된 사용자여야만 신청할 수 있습니다. 드롭스 리워드 지급 API는 별도의 헤더가 존재합니다. 드롭스 리워드 지급 API를 호출하려면 애플리케이션 등록 후 Client 인증이 필요합니다. ([Client 인증 API 참조](https://chzzk.gitbook.io/chzzk/chzzk-api/tips#client-api) ) HTTP Request Description **PUT /open/v1/drops/reward-claims** 드롭스 리워드 지급 **Request Body** Field Type Required Description claimId String\[\] \* 드롭스 캠페인 지급 요청 ID 배열 fulfillmentState String \* 조회할 리워드 상태 조건 * `CLAIMED`: 지급 요청된 리워드 * `FULFILLED`: 지급 완료 Copy { "claimIds": ["6dd13087-d811-479d-8c4d-52d9f3a54c24"] "fulfillmentState": "FULFILLED" } **Response Body** Field Type Required Description data Object\[\] \* 결과가 담긴 배열. data\[\].status의 따라 구분 status String \* 지급 상태를 명시 * `INVALID_ID`: 잘못된 지급 요청 ID 입니다. * `NOT_FOUND`: 해당하는 지급 ID를 찾을 수 없습니다. * `SUCCESS`: 성공적으로 변경했습니다. * `UNAUTHORIZ`ED: 요청한 유저가 계정 연동을 해제한 경우입니다. * `UPDATE_FAILED`: 에러가 발생하여 상태 변경이 실패했습니다. ids String\[\] \* 지급 상태에 해당하는 지급 요청 ID 배열 Copy { "data": [\ {\ "status": "SUCCESS",\ "ids": ["1ce167db-8c58-4a37-8662-48d4e2398503", "6dd13087-d811-479d-8c4d-52d9f3a54c24", "477fe295-30c2-4670-a3a6-6ad8305d36ad"]\ },\ {\ "status": "UNAUTHORIZED",\ "ids": ["3ff167ah-912g-9112-1001-1k2fmvakppzp", "9avlake5-9z1s-8710-b0ba-1ga99b1123fd", "ab98c1z5-mz21-1219-nex0-akem19am7bb"]\ }\ ] } [PreviousChat](/chzzk/chzzk-api/chat) [Next드롭스 개요](/chzzk/drops/overview) Last updated 1 month ago --- # Chat | CHZZK 채팅 API로 채팅 전송, 채팅 공지 등록, 채팅 설정 조회, 채팅 설정 변경을 할 수 있습니다. 채팅 API를 호출하려면 사용자 계정으로 인증하여 얻은 Access Token이 필요합니다. API Scope는 `채팅 메시지 전송`, `채팅 공지 등록`, `채팅 설정 조회`, `채팅 설정 변경`입니다. * * * [](#undefined) 채팅 메시지 전송 ----------------------------- 채팅 메시지를 전송할 수 있습니다. HTTP Request Description **POST /open/v1/chats/send** 채팅 메시지 전송 **Request Body** Field Type Description message String 전송할 메시지 내용. 메시지 내용은 최대 100자로 제한 **Response Body** Field Type Description messageId String 전송된 메시지 ID [](#undefined-1) 채팅 공지 등록 ------------------------------ 채팅 공지사항을 등록할 수 있습니다. 신규 메시지 또는 전송된 기존메시지로 공지사항을 등록이 가능합니다. HTTP Request Description **POST /open/v1/chats/notice** 채팅 공지사항 등록 **Request Body** Field Type Required Description message String Optional 신규 메시지로 공지사항 등록 시 전송할 메시지 내용. 메시지 내용은 최대 100자로 제한 messageId String Optional 기존 메시지로 공지사항 등록 시 사용하는 전송된 메시지 ID **Response** Code Description 200 공지사항 등록 성공 [](#undefined-2) 채팅 설정 조회 ------------------------------ 채널의 채팅 설정을 조회할 수 있습니다. HTTP Request Description **GET /open/v1/chats/settings** 채팅 설정 조회 **Response Body** Field Type Description chatAvailableCondition String 본인인증 여부 설정 조건 * NONE (제한 없음) * REAL\_NAME (네이버 본인인증한 시청자만 채팅 허용) chatAvailableGroup String 채팅 참여 범위 설정 조건 * ALL (모든 시청자) * FOLLOWER (팔로워 전용) * MANAGER (운영자 전용) * SUBSCRIBER (구독자 전용) minFollowerMinute Int FOLLOWER 모드 설정된 경우 적용된 최소 팔로잉 기간 조건 allowSubscriberInFollowerMode boolean FOLLOWER 모드 설정된 경우 구독자는 최소 팔로잉 기간 조건 대상에서 제외 허용 할지 여부 [](#undefined-3) 채팅 설정 변경 ------------------------------ 채널의 채팅 설정을 변경할 수 있습니다. HTTP Request Description **PUT /open/v1/chats/settings** 채팅 설정 변경 **Request Body** Field Type Description chatAvailableCondition String 본인인증 여부 설정 조건 * NONE (제한 없음) * REAL\_NAME (네이버 본인인증한 시청자만 채팅 허용) chatAvailableGroup String 채팅 참여 범위 설정 조건 * ALL (모든 시청자) * FOLLOWER (팔로워 전용) * MANAGER (운영자 전용) * SUBSCRIBER (구독자 전용) minFollowerMinute Int FOLLOWER 모드 설정된 경우 적용된 최소 팔로잉 기간 조건 0, 5, 10, 30, 60, 1440, 10080, 43200 값만 허용 allowSubscriberInFollowerMode boolean FOLLOWER 모드 설정된 경우 구독자는 최소 팔로잉 기간 조건 대상에서 제외 허용 할지 여부 [PreviousLive](/chzzk/chzzk-api/live) [NextDrops](/chzzk/chzzk-api/drops) Last updated 3 days ago --- # 드롭스 개요 | CHZZK [PreviousDrops](/chzzk/chzzk-api/drops) [Next드롭스 연동 및 절차](/chzzk/drops/guide) Last updated 19 days ago * * * [](#undefined) 드롭스란? ------------------------- 치지직의 시청자가 특정 게임의 방송을 시청하고 다양한 게임 전리품 등의 리워드를 받을 수 있도록 제공하는 시스템입니다. 이는 스트리머와 게임사 모두에게 유용한 도구로, 방송 참여를 촉진하고 게임의 홍보 효과를 극대화할 수 있습니다. 드롭스를 통해 시청자는 보상을 받는 즐거움을, 게임사는 더 많은 시청자와 인지도를 확보하는 이점을 누릴 수 있습니다. [](#undefined-1) 드롭스의 효과 ----------------------------- 드롭스 캠페인을 진행한 게임은 평균적으로 이전 대비 몇 배 더 많은 시청자 수를 기록하는 경향을 보이며, 효과적으로 게임을 홍보할 수 있는 마케팅 성과를 이뤄낼 수 있습니다. * * * [](#undefined-2) 드롭스의 유형 및 용어 ---------------------------------- 드롭스는 크게 두 가지 유형으로 구분됩니다. 1. 인앱보상 유형 2. 쿠폰코드 유형 용어 설명 인앱보상 유형 드롭스 캠페인의 종류. 치지직에서 방송을 시청한 후 게임 내에서 직접 리워드를 지급받는 유형 쿠폰코드 유형 드롭스 캠페인의 종류. 치지직에서 방송을 시청한 후 치지직 내에서 쿠폰코드를 즉시 확인할 수 있는 유형 리워드 방송을 시청하고 얻을 수 있는 보상을 지칭 드롭스 보관함 진행 중이거나 획득 완료한 드롭스를 확인할 수 있는 페이지 * * * [](#undefined-3) 인앱보상 유형 드롭스 --------------------------------- 인앱보상 유형의 드롭스는 시청자가 치지직에서 방송을 시청한 후, 게임 내에서 직접 리워드를 지급받는 방식입니다. 드롭스 캠페인을 자주 진행하거나, 지급할 리워드를 자유롭게 설계하고 싶은 게임사에게 추천하는 유형입니다. 항목 설명 특징 시청시간을 충족한 유저에게 게임사가 게임 내에서 리워드를 직접 지급 필요사항 게임사는 치지직 개발자 센터에 서비스를 등록한 후, OpenAPI 인증 연동과 드롭스 관련 API 연동 등 별도의 기술 개발 필요 장점 드롭스의 보상으로 지급할 리워드를 게임사가 자유롭게 설계하고 지급할 수 있어 더욱 유연한 보상 구조 제공 시청자의 리워드 획득 조건 게임사가 설정한 리워드별 시청 시간 조건 충족 [](#undefined-4) 쿠폰코드 유형 드롭스 --------------------------------- 쿠폰코드 유형의 드롭스는 시청자가 치지직에서 방송을 시청한 후, 게임사가 별도로 등록한 쿠폰코드를 치지직에서 지급받고 즉시 확인할 수 있는 방식입니다. 별도의 기술 개발 없이 빠르게 드롭스 캠페인을 진행하고 싶은 게임사에게 추천하는 유형입니다. 항목 설명 특징 시청시간을 충족한 유저에게 치지직이 쿠폰코드 리워드를 지급 \*게임사는 사전에 치지직 어드민에서 쿠폰코드 별도 업로드 필요 필요사항 게임사는 별도의 기술적 개발이나 연동이 필요하지 않으며, 치지직 개발자 센터에 서비스를 등록하는 간단한 절차만으로 드롭스 캠페인 시작 가능 장점 준비 과정이 간단하며 빠르게 드롭스 캠페인을 개최 가능 시청자의 리워드 획득 조건 게임사가 설정한 리워드별 시청 시간 조건 충족 * * * [](#undefined-5) 드롭스 캠페인 홍보 방법 ----------------------------------- 치지직의 다양한 유료광고를 통해 드롭스 캠페인을 더 홍보할 수 있습니다. 자세한 내용은 '[Chzzk AD(치지직 유료광고)](/chzzk/resources/chzzk-ad) '를 참고해 주세요. [](#undefined-6) 자주 묻는 질문 ------------------------------ 드롭스 캠페인을 개최하기 위해 필요한 절차는 무엇인가요?[](#undefined-7) 드롭스 캠페인을 개최하기 위해 게임사는 아래 절차를 진행해야 합니다. 1. 치지직 개발자 센터에 서비스 등록 2. (인앱보상 유형 진행 시) 드롭스 개발 연동 3. 드롭스 캠페인을 생성/관리할 수 있는 네이버 파트너 어드민 계정 신청 4. 드롭스 캠페인 생성 자세한 내용은 '[드롭스 연동 가이드](/chzzk/drops/guide) ' 를 참고해 주세요. 게임사가 아닌 개인도 드롭스 캠페인을 개최할 수 있나요?[](#undefined-8) 게임을 소유한 게임사, 퍼블리셔, 또는 제작자만 드롭스 캠페인을 개최할 수 있습니다. 개인 제작자의 경우 치지직 고객센터를 통해 게임의 제작자 및 소유자임을 인증해 주세요. 치지직 개발자 센터에 서비스를 어떻게 등록하나요?[](#undefined-9) [https://developers.chzzk.naver.com](https://developers.chzzk.naver.com) 에 접속 후, 애플리케이션을 생성 및 드롭스 API 사용을 신청해 주세요. 드롭스 API의 경우 게임사, 퍼블리셔, 또는 제작자만 승인받을 수 있습니다. 특정 스트리머(채널)만 지정해서 드롭스를 진행할 수 있나요?[](#undefined-10) 네, 특정 스트리머(채널)만 지정해서 드롭스를 진행할 수 있습니다. 자세한 내용은 '[드롭스 캠페인 생성 및 관리 가이드](/chzzk/drops/manual) ' 를 참고해 주세요. 드롭스 캠페인 시작 전에 테스트를 해볼 수 있나요?[](#undefined-11) 네, 캠페인을 테스트 상태로 등록한 후, 특정 아이디로만 방송 및 시청을 테스트해볼 수 있습니다. 자세한 내용은 '[드롭스 캠페인 생성 및 관리 가이드](/chzzk/drops/manual) ' 를 참고해 주세요. 치지직 메인화면의 드롭스 방송 예시 T게임의 드롭스 진행 전/후 일일 시청자 수 증가 비교 시청자가 획득한 인앱보상 리워드 예시 시청자가 획득한 쿠폰코드 리워드 예시 ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252FGzXeU1v2eOOiAGoADePG%252Fimage.png%3Falt%3Dmedia%26token%3Db031d47b-ee7e-49e1-946d-f2621df0a9e2&width=768&dpr=4&quality=100&sign=4d1641a9&sv=2) ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252FSO5UFKejeuJ2VWFPfkRE%252Fimage.png%3Falt%3Dmedia%26token%3D6e717b13-0498-4b15-be8a-1764d049ec1f&width=768&dpr=4&quality=100&sign=bda8b6a4&sv=2) ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252Fgdh3oaDylf7SzyvPyIiM%252Fimage.png%3Falt%3Dmedia%26token%3D4d302458-b222-4a4a-9025-8d0674046d6d&width=768&dpr=4&quality=100&sign=75644117&sv=2) ![](https://chzzk.gitbook.io/~gitbook/image?url=https%3A%2F%2F61535310-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FU1rtupxF55gPyfAfbzSB%252Fuploads%252FBIn5VfadgDu3MXuk5S4c%252Fimage.png%3Falt%3Dmedia%26token%3D429cfdc3-050d-4d72-891e-b6405c4d29f4&width=768&dpr=4&quality=100&sign=41be9f9c&sv=2) --- # Session | CHZZK 세션 생성, 세션 목록 조회, 이벤트 구독 및 취소를 할 수 있습니다. 세션 API 중 아래 API Scope를 호출하려면 사용자 계정으로 인증하여 얻은 Access Token이 필요합니다. API Scope는 `채팅 메시지 조회`, `후원 조회`입니다. * * * [](#undefined) 세션 생성(클라이언트) -------------------------------- Client 인증을 통해 소켓 연결을 위한 URL을 요청합니다. 생성된 URL은 일정 시간 동안만 유효합니다. 최대 10개의 연결을 유지할 수 있습니다. 세션 생성(클라이언트)를 호출하려면 애플리케이션 등록 후 Client 인증이 필요합니다. ([Client 인증 API 참조](https://chzzk.gitbook.io/chzzk/chzzk-api/tips#client-api) ) HTTP Request Description **GET /open/v1/sessions/auth/client** 세션 생성(클라이언트) **Response Body** Field Type Description url String 소켓 연결을 위한 URL [](#undefined-1) 세션 생성(유저) ------------------------------- Access Token 인증을 통해 소켓 연결을 위한 URL을 요청합니다. 생성된 URL은 일정 시간 동안만 유효합니다. 연결된 세션은 세션 생성에 사용된 Access Token과 동일한 유저 이벤트만 구독할 수 있습니다. 유저별 최대 3개의 연결을 유지할 수 있습니다 HTTP Request Description **GET /open/v1/sessions/auth** 세션 생성(유저) **Response Body** Field Type Description url String 소켓 연결을 위한 URL [](#undefined-2) 세션 연결 가이드 ------------------------------- [Socket.IO-client](https://github.com/socketio/socket.io-client) 1.0.0+ 2.0.3 버전까지 지원합니다. **소켓 연결** Copy // api를 통해 얻은 연결 url const sessionURL = 'https://ssio08.nchat.naver.com:443?auth=TOKEN'; // 옵션 설정 const socketOption = { reconnection: false, 'force new connection': true, 'connect timeout': 3000, transports: ['websocket'], }; // ... // 세션 연결 socket = io.connect(sessionURL, socketOption) socket.on('connect', function() { // on connected }); 연결이 완료될 경우 세션으로 [연결 완료 메시지](/chzzk/chzzk-api/session#undefined-11) 가 전달 됩니다. 해당 메시지의 sessionKey 값을 통해 연결된 세션에 이벤트를 구독할 수 있습니다. **메시지 수신** Copy // eventType 메시지 socket.on("SYSTEM", function(data) { /* on system event */ }); [](#undefined-3) 세션 목록 조회(클라이언트) ------------------------------------- Client 인증 기반의 생성된 세션을 조회합니다. 연결이 끊어진 세션은 일정 시간 동안만 조회가 가능합니다. 세션 목록 조회(클라이언트)를 호출하려면 애플리케이션 등록 후 Client 인증이 필요합니다. ([Client 인증 API 참조](https://chzzk.gitbook.io/chzzk/chzzk-api/tips#client-api) ) HTTP Request Description **GET /open/v1/sessions/client** 세션 목록 조회(클라이언트) **Request Param** Field Type Description size Int 조회할 세션 개수. 최소 1 ~ 최대 50 요청 가능 default : 20 page String 조회할 페이지. 0부터 조회 가능 default : 0 **Response Body** Field Type Description data Object\[\] 세션 목록 결과 sessionKey String 세션 식별자 connectedDate String 연결 시간 disconnectedDate String 연결 해제 시간 subscribedEvents Object\[\] 구독 이벤트 목록 eventType String 이벤트 종류 * CHAT * DONATION channelId String 이벤트 채널 ID(채널 식별자) [](#undefined-4) 세션 목록 조회(유저) ---------------------------------- Access Token 인증 기반의 생성된 세션을 조회합니다. 연결이 끊어진 세션은 일정 시간 동안만 조회 가능합니다. HTTP Request Description **GET /open/v1/sessions** 세션 목록 조회(유저) **Request Param** Field Type Description size Int 조회할 세션 개수. 최소 1 ~ 최대 50 요청 가능 default : 20 page String 조회할 페이지. 0부터 조회 가능 default : 0 **Response Body** Field Type Description data Object\[\] 세션 목록 결과 sessionKey String 세션 식별자 connectedDate String 연결 시간 disconnectedDate String 연결 해제 시간 subscribedEvents Object\[\] 구독 이벤트 목록 eventType String 이벤트 종류 * CHAT * DONATION channelId String 이벤트 채널 ID(채널 식별자) * * * [](#undefined-5) 이벤트 구독(채팅) -------------------------------- 요청한 세션에 사용자의 채팅 이벤트를 구독합니다. 구독이 완료될 경우 요청한 세션으로 [이벤트 구독 메시지](/chzzk/chzzk-api/session#message-event-subscribe) 가 전달 됩니다. 채팅 이벤트 구독 시, 구독한 채널에 채팅이 발생할 때 [채팅 이벤트 메시지](/chzzk/chzzk-api/session#message-event-subscribe-chat) 가 전달됩니다. 관련 Scope : 채팅 메시지 조회 \*세션당 최대 30개의 이벤트(채팅 및 후원)를 구독할 수 있습니다. HTTP Request Description **POST /open/v1/sessions/events/subscribe/chat** 이벤트 구독(채팅) **Request Param** Field Type Required Description sessionKey String \* 세션 식별자 [](#undefined-6) 이벤트 구독 취소(채팅) ----------------------------------- 요청한 세션에 사용자의 채팅 이벤트를 구독 취소합니다. 구독이 취소될 경우 요청한 세션으로 [이벤트 구독 취소 메시지](/chzzk/chzzk-api/session#message-event-unsubscribe) 가 전달 됩니다. HTTP Request Description **POST /open/v1/sessions/events/unsubscribe/chat** 이벤트 구독 취소(채팅) **Request Param** Field Type Required Description sessionKey String \* 세션 식별자 [](#undefined-7) 이벤트 구독(후원) -------------------------------- 요청한 세션에 사용자의 후원 이벤트를 구독합니다. 구독이 완료될 경우 요청한 세션으로 [이벤트 구독 메시지](/chzzk/chzzk-api/session#message-event-subscribe) 가 전달 됩니다. 이벤트 구독 시, 구독한 채널에 후원이 발생할 때 [후원 이벤트 메시지](/chzzk/chzzk-api/session#undefined-13) 가 전달됩니다. 관련 Scope : 후원 조회 \*세션당 최대 30개의 이벤트(채팅 및 후원)를 구독할 수 있습니다. HTTP Request Description **POST /open/v1/sessions/events/subscribe/donation** 이벤트 구독(후원) **Request Param** Field Type Required Description sessionKey String \* 세션 식별자 [](#undefined-8) 이벤트 구독 취소(후원) ----------------------------------- 요청한 세션에 사용자의 후원 이벤트를 구독 취소합니다. 구독이 취소될 경우 요청한 세션으로 [이벤트 구독 취소 메시지](/chzzk/chzzk-api/session#message-event-unsubscribe) 가 전달 됩니다. HTTP Request Description **POST /open/v1/sessions/events/unsubscribe/donation** 이벤트 구독 취소(후원) **Request Param** Field Type Required Description sessionKey String \* 세션 식별자 * * * [](#undefined-9) 세션 메시지 ---------------------------- 세션으로 전달되는 메시지에는 시스템 메시지, 구독 이벤트 메시지가 존재합니다. [](#undefined-10) 시스템 메시지(공통) ---------------------------------- `Event Type : SYSTEM` **Message Body** Field Type Description type String 시스템 메시지 종류 * connected * subscribed * unsubscribed * revoked data Object 시스템 메시지 정보 [](#undefined-11) 시스템 메시지(연결 완료 메시지) ----------------------------------------- 소켓 연결이 정상적으로 완료 되었을 때 전달됩니다. 전달된 세션 식별자를 통해 이벤트를 구독/취소 할 수 있습니다. **Message Body** Field Type Description type String connected data Object 시스템 메시지 정보 sessionKey String 세션 식별자 [](#message-event-subscribe) 시스템 메시지(이벤트 구독 메시지) ----------------------------------------------------- 이벤트 구독이 완료 되었을 때 전달됩니다. **Message Body** Field Type Description type String subscribed data Object 시스템 메시지 정보 eventType String 이벤트 종류 * CHAT * DONATION channelId String 이벤트 채널 ID(채널 식별자) [](#message-event-unsubscribe) 시스템 메시지(이벤트 구독 취소 메시지) ---------------------------------------------------------- 이벤트 구독이 취소 되었을 때 전달됩니다. **Message Body** Field Type Description type String unsubscribed data Object 시스템 메시지 정보 eventType String 이벤트 종류 * CHAT * DONATION channelId String 이벤트 채널 ID(채널 식별자) [](#undefined-12) 시스템 메시지(이벤트 권한 취소 메시지) --------------------------------------------- 사용자의 동의 철회, 스코프 변경 등 권한 회수로 이벤트 구독이 취소 되었을 때 전달됩니다. **Message Body** Field Type Description type String revoked data Object 시스템 메시지 정보 eventType String 이벤트 종류 * CHAT * DONATION channelId String 이벤트 채널 ID(채널 식별자) [](#message-event-subscribe-chat) 구독 이벤트 메시지(채팅 이벤트 메시지) ------------------------------------------------------------- 구독한 채널의 채팅 메시지가 전달됩니다. `Event Type : CHAT` **Message Body** Field Type Description channelId String 이벤트 채널 ID(채널 식별자) senderChannelId String 채팅 메시지 작성자 채널 ID profile Object 채팅 메시지 작성자 프로필 정보 nickname String 닉네임 badges Object\[\] 배지 verifiedMark boolean 인증여부 content String 채팅 메시지 내용 emojis Map 사용된 치지직 이모티콘 정보 key String 치지직 이모티콘 식별자 value String 치지직 이모티콘 URL messageTime Int64 메시지 시간 (ms) [](#undefined-13) 구독 이벤트 메시지(후원 이벤트 메시지) --------------------------------------------- 구독한 채널의 후원 메시지가 전달됩니다. `Event Type : DONATION` **Message Body** Field Type Description donationType String 후원 종류 * CHAT * VIDEO channelId String 이벤트 채널 ID(채널 식별자) donatorChannelId String 후원자 채널 ID donatorNickname String 후원자 닉네임 payAmount String 후원 금액 (원) donationText String 후원 메시지 내용 emojis Map 사용된 치지직 이모티콘 정보 key String 치지직 이모티콘 식별자 value String 치지직 이모티콘 URL [Previous참고사항](/chzzk/chzzk-api/tips) [NextUser](/chzzk/chzzk-api/user) Last updated 1 day ago --- # Webhook Event | CHZZK 치지직 Webhook을 이용하여 이벤트 알림(Notification Message)을 받는 방법을 안내하기 위한 가이드 문서입니다. [](#id-1.1-event-subscription) 1.1 Event Subscription ---------------------------------------------------------- 이벤트 발생 알림을 받기 위해 이벤트를 구독할 수 있는 기능을 제공합니다. * Webhook을 이용하여 이벤트 알림(Notification Message)을 받는 방법을 우선적 제공하고 있습니다. * 치지직 개발자 센터 사용 신청과 이벤트 알림을 받을 Webhook URL 등록이 완료 되어있는지 확인해 주세요. [](#id-1.2-handling-webhook-event) 1.2 Handling Webhook Event ------------------------------------------------------------------ * POST 요청 Webhook URL로 이벤트가 전송되게 됩니다. * Webhook URL은 반드시 SSL 사용과 443 port가 열려있어야 합니다. (HTTPS 필수) * Webhook POST 요청 응답은 반드시 수 초 이내 응답이 전달되어야 하며, 메시지 발송이 제대로 가지 않았다고 판단이 되면 최대 3번의 메시지 재발송이 이루어집니다. (자세한 retry 관련 설명은 Request Header의 Retry 헤더관련 내용 참조) * Webhook POST 요청 응답 상태 코드는 2XX 형태의 코드여야 합니다. 그 외는 모두 실패로 간주합니다. ### [](#id-1.2.1-request-header) 1.2.1 Request Header Header Description Chzzk-Event-Message-Id 메시지 식별자 ID Chzzk-Event-Message-Timestamp 메시지 발송 시각 UTC datetime(RFC 3339) Chzzk-Event-Message-Signature HMAC signature, 치지직에서 보낸 메시지가 맞는지 검증 용도로 사용 필요 Chzzk-Event-Message-Type message type 유형 현재 `notification` value로만 제공 Chzzk-Event-Message-Data-Type 이벤트 데이터 유형 (참조 : Event Types) Chzzk-Event-Message-Version message 형식 버전 `message.version` 값과 일치 (참조 : Notification Message) Chzzk-Event-Message-Data-Version eventType 에 따른 data 형식 버전 `message.event.version` 값과 일치 (참조 : Notification Message) Chzzk-Event-Message-Retry 이벤트 재발송 횟수 정상적인 경우 보통 한 번의 메시지만 발송하지만, 알림을 수신 받는 곳에서 정상적으로 응답하지 않는다고 판단했을 경우 다시 한번 이벤트를 재발송함. `Chzzk-Event-Message-Id`헤더에 같은 id의 메시지가 여러 차례 재발송 될 수 있음 (참조 : Retry Policy) **Note :** 재발송 경우에만 Retry 헤더를 전달함 ### [](#id-1.2.2-notification-message) 1.2.2 Notification Message * Webhook URL로 POST 요청을 전송하게 됩니다. * Reqeust body를 JSON parsing 하여 사용합니다. * JSON parsing을 완료할 경우 다음과 같은 형태의 메시지를 응답 받습니다. 예) 메시지 형태 `Chzzk-Event-Message-Type : notification` Copy { "message": { "messageId": "eafe79192ab427be4e85e5a825c980af", "version": "1", "event": { "eventTimeMillis": 1722477515159, "version": "1", "eventType": "drop_reward_claim", "data": { "dropsClaimId": "97", "channelId": "${channelId}", "dropsRewardId": "2", "dropsCampaignId": "c91f66d879fb96e39d2f44e0d6094e8a", "dropsCategoryId": "CATEGORY_CHZZK", "dropsCategoryName": "치지직", "dropsClaimDate": "2024-08-01T01:58:33Z" } } }, "subscription": { "clientId": "${clientId}", "status": "ENABLED", "method": { "methodType": "WEBHOOK", "url": "${Webhook URL}" } } } **Notification Message fields** Name Type Description message Message 이벤트 정보 및 내용을 포함 subscription Subscription 이벤트를 수신 받는 client 의 metadata **Message** Name Type Description messageId String 메시지 식별자 id version String message 형식 버전 Chzzk-Event-Message-Version 헤더 값과 동일 event Event 이벤트 정보 이벤트 타입에 따라 데이터가 달라질 수 있음 **Event** Name Type Description eventTimeMillis long 이벤트 발생시각 밀리 초 단위 (UTC) version String Event data 형식 버전 Chzzk-Event-Message-Data-Version 헤더 값과 동일 eventType String 이벤트 데이터 유형 (참조 : Event Types) data Data 이벤트 정보 이벤트 타입에 따라 데이터가 달라질 수 있음 (참조 : Event Types) **Subscription** Name Type Description clientId String clientId status String 현재 구독상태 (DISABLED 경우엔 이벤트가 전달되지 않으므로 ENABLED가 기본값으로 전달됨) method Method 이벤트 전송 방법 **Method** Name Type Description methodType String Notification type의 경우 현재 WEBHOOK 값으로만 전달됨 url String Webhook URL [](#id-1.3-event-types) 1.3 Event Types -------------------------------------------- Name Type Version Description Drop Reward Claim drop\_reward\_claim 1 드롭스 리워드 아이템 신청 이벤트 ### [](#id-1.3.1-drops_reward_claim) 1.3.1 drops\_reward\_claim eventType이 drop\_reward\_claim으로 전달됩니다. **Event Data** Name Type Description dropsClaimId String 지급 신청 데이터의 고유한 식별자 ID channelId String 치지직 프로필을 사용하는 유저의 고유한 식별자 ID dropsRewardId String 신청한 리워드 아이템 ID dropsCampaignId String 진행하고 있는 캠페인 ID dropsCategoryId String 캠페인에 할당된 카테고리 ID dropsCategoryName String 캠페인에 할당된 노출 가능한 카테고리 이름 dropsClaimDate String 지급 신청한 날짜 UTC datetime(RFC 3339) [](#id-1.4-event-message-verification) 1.4 Event Message Verification -------------------------------------------------------------------------- * 이벤트 메시지를 처리하기 전에 알림을 수신 받는 곳에서 반드시 치지직에서 보낸 메시지인지 확인하는 과정이 필요합니다. * 치지직 개발자 센터 > 서비스 client 등록 시 발급되는 client 의 secret key를 비밀키로 사용하여 HMAC-SHA256 서명을 생성합니다. * 아래의 코드 snippet을 확인하여 검증 구현이 필요합니다. * Javascript 에서는 헤더를 소문자로 표기해야 합니다. * Signature 가 매칭되지 않는다면, 2xx 상태코드가 아닌 4xx 상태코드 값으로 반환해야 합니다.. `Javascript` Copy const crypto = require('crypto'); const express = require('express'); const app = express(); // Notification request headers const CHZZK_MESSAGE_ID = 'CHZZK-EVENT-MESSAGE-ID'.toLowerCase(); const CHZZK_MESSAGE_TIMESTAMP = 'CHZZK-EVENT-MESSAGE-TIMESTAMP'.toLowerCase(); const CHZZK_MESSAGE_SIGNATURE = 'CHZZK-EVENT-MESSAGE-SIGNATURE'.toLowerCase(); const CHZZK_MESSAGE_TYPE = 'CHZZK-EVENT-MESSAGE-TYPE'.toLowerCase(); const CHZZK_MESSAGE_TYPE_NOTIFICATION = 'NOTIFICATION'.toLowerCase(); const HMAC_PREFIX = 'sha256='; ...... let secret = getSecret(); let message = getHmacMessage(req); let hmac = HMAC_PREFIX + getHmac(secret, message); if (true === verifyMessage(hmac, req.headers[CHZZK_MESSAGE_SIGNATURE])) { let notification = JSON.parse(req.body); if (CHZZK_MESSAGE_TYPE_NOTIFICATION === req.headers[CHZZK_MESSAGE_TYPE]) { console.log(JSON.stringify(notification)); res.sendStatus(200); } } else { console.log('403'); res.sendStatus(403); } }); function getSecret() { // client 등록 시 발급되는 secret key를 비밀키로 사용 (아래는 예시 실제 시크릿키 아님) return "${secretKey}"; } function getHmacMessage(request) { return (request.headers[CHZZK_MESSAGE_ID] + request.headers[CHZZK_MESSAGE_TIMESTAMP] + request.body); } function getHmac(secret, message) { return crypto.createHmac('sha256', secret) .update(message) .digest('hex'); } function verifyMessage(hmac, verifySignature) { return crypto.timingSafeEqual(Buffer.from(hmac), Buffer.from(verifySignature)); } `Java` Copy public class WebhookNotificationSubscriptionTest { private static final String CHZZK_MESSAGE_ID = "Chzzk-Event-Message-Id"; private static final String CHZZK_MESSAGE_TIMESTAMP = "Chzzk-Event-Message-Timestamp"; private static final String CHZZK_MESSAGE_SIGNATURE = "Chzzk-Event-Message-Signature"; private static final String CHZZK_MESSAGE_TYPE = "Chzzk-Event-Message-Type"; private static final String CHZZK_MESSAGE_TYPE_NOTIFICATION = "notification"; private static final String HMAC_PREFIX = "sha256="; private static final String HMAC_ALGORITHM = "HmacSHA256"; public void handleEvent(String body, HttpServletRequest httpServletRequest) throws NoSuchAlgorithmException, InvalidKeyException { String secret = getSecret(); String message = getHmacMessage(httpServletRequest, body); String hmac = HMAC_PREFIX + generateHmac(secret, message); if (verifyMessage(hmac, httpServletRequest.getHeader(CHZZK_MESSAGE_SIGNATURE))) { if (CHZZK_MESSAGE_TYPE_NOTIFICATION.equals(httpServletRequest.getHeader(CHZZK_MESSAGE_TYPE))) { System.out.println("success: " + body); // Body Json Parsing } } else { // 검증되지 않은 메시지 확인 } } private String getSecret() { return "${secretKey}"; } private String getHmacMessage(HttpServletRequest httpServletRequest, String body) { return httpServletRequest.getHeader(CHZZK_MESSAGE_ID) + httpServletRequest.getHeader(CHZZK_MESSAGE_TIMESTAMP) + body; } private String generateHmac(String secret, String message) throws NoSuchAlgorithmException, InvalidKeyException { Mac mac = Mac.getInstance(HMAC_ALGORITHM); SecretKeySpec secretKeySpec = new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), HMAC_ALGORITHM); mac.init(secretKeySpec); byte[] hmacBytes = mac.doFinal(message.getBytes(StandardCharsets.UTF_8)); return bytesToHex(hmacBytes); } private String bytesToHex(byte[] bytes) { StringBuilder sb = new StringBuilder(); for (byte b : bytes) { sb.append(String.format("%02x", b)); } return sb.toString(); } private boolean verifyMessage(String hmac, String verifySignature) { return hmac.equals(verifySignature); } } ### [](#id-1.4.1-retry-policy) 1.4.1 Retry Policy 이벤트 발송에 문제가 생겼을 경우(응답 속도가 느리거나, 5xx에러 발생 시) notification message 재발송이 정상적으로 전송될 때까지 최대 3회 발송합니다. `Chzzk-Event-Message-Retry` 헤더를 참고하여 재발송에 대한 이벤트 확인 및 재발송에 대한 처리(중복 메시지 처리) 구현이 필요합니다. \*이벤트 재발송의 eventTimeMillis(이벤트 발생 시각)는 메시지 전송시각이 아닌 재발송 전 이벤트 전송 시작 시간을 기반으로 전송합니다. [Previous드롭스 연동 및 절차](/chzzk/drops/guide) [Next드롭스 캠페인 생성 및 관리 가이드](/chzzk/drops/manual) Last updated 1 month ago --- # About CHZZK Developers | CHZZK 치지직 API는 치지직과의 연동 및 기능 사용을 제공합니다. 개발자는 치지직의 API를 사용하여 라이브 조회, 방송 설정 조회 및 변경, 채팅 발송 및 공지 등록 등 치지직에서 제공하는 다양한 기능과 리소스를 활용하는 애플리케이션을 개발할 수 있습니다. * * * [](#api) API 문서 -------------------- API 문서는 각 API 기능과 요청 방법, 응답 값 등의 정보를 제공하며, API를 사용하기 전에 반드시 확인해야 합니다. ### [](#api-1) API 카테고리 치지직 API는 여러 카테고리로 분류됩니다. 각 카테고리 설명 링크는 다음과 같습니다. Category Description [User](/chzzk/chzzk-api/user) 로그인 유저의 치지직 채널 정보를 조회할 수 있습니다. [Channel](/chzzk/chzzk-api/channel) 타 채널 정보를 조회할 수 있습니다. [Category](/chzzk/chzzk-api/category) 카테고리 목록 및 정보를 조회할 수 있습니다. [Live](/chzzk/chzzk-api/live) 라이브 목록을 조회하고, 방송 설정을 관리할 수 있습니다. [Chat](/chzzk/chzzk-api/chat) 채팅 메세지를 전송하고, 채팅 공지를 등록하고, 채팅 설정을 관리할 수 있습니다. [](#undefined) 용어 ---------------------- API 문서에서는 기본적인 치지직의 정보를 나타내기 위해 다음과 같은 용어를 사용합니다. * 채널(Channel) : 치지직의 모든 사용자가 기본적으로 소유하고 있는 채널 * 채널 ID : 채널 식별자 * 라이브(Live) : 현재 실시간으로 진행 중인 방송 * 카테고리(Category) : 방송 분류 카테고리 * 드롭스(Drops) : 치지직의 시청자가 특정 게임의 방송을 시청하고 해당 게임의 전리품 등 리워드를 받을 수 있도록 제공하는 시스템 [NextUpdates](/chzzk/introduction/updates) Last updated 1 month ago ---