(공식 API) API 래퍼런스¶
Client¶
- class Client(client_id: str, client_secret: str, loop: asyncio.AbstractEventLoop | None = None)¶
치지직(네이버 스트리밍 서비스)의 API를 제공하는 클라이언트 객체입니다.
- async connect(addition_connect: bool = False) str ¶
후원 정보 또는 채팅을 수신받기 위해 세션에 연결합니다. 클라이언트 세션은 최대 10개까지 생성할 수 있습니다.
- 매개변수:
addition_connect (Optional[bool]) – 이 매개변수는 다중 채널 연결을 위해 사용되며, 기본 값은 False 입니다. 만약에 addition_connect의 값이 False 라면 메인 스레드는 이벤트를 수신받기 위해 사용됩니다. 하지만 addition_connect의 값이 True 라면, 이벤트를 수신받기 위한 작업은 백그라운드에서 진행되게 됩니다.
- 반환:
고유 세션 ID를 반환 받습니다. 세션 ID는 이벤트를 구독하는 용도로 사용됩니다.
- 반환 형식:
경고
만약에 메인 스레드의 작업이 없고, addition_connect 매개변수의 값이 True 라면, 모든 메인 스레드의 연산 작업을 마치고 연결은 중단됩니다.
- 예외 발생:
ChatConnectFailed.max_connection – 클라이언트 세션은 10개까지 연결할 수 있습니다. 만약 10개 이상의 연결을 시도한다면 ChatConnectFailed 예외가 유발될 수 있습니다.
- async disconnect(session_id: str | None = None)¶
세션 연결을 종료합니다.
- 매개변수:
session_id (Optional[str]) – 연결을 종료할 세션의 ID 입니다. 만약 세션 ID를 담는 매개변수가 비어있다면, 모든 세션을 종료합니다.
- async generate_access_token(code: str, state: str) AccessToken ¶
Access Token을 생성합니다. Access Token은 사용자 인증이 필요한 기능을 위해 사용됩니다.
- 매개변수:
code (str) –
generate_authorization_token_url()
에서 응답받은 코드입니다.state (str) – 인증을 위해 사용되는 임시 코드입니다. :meth:`generate_authorization_token_url`의 매개변수에 사용된 state 코드와 동일해야 합니다.
- 반환:
사용자 인증 정보를 담고 있는 객체입니다.
- 반환 형식:
- generate_authorization_token_url(redirect_url: str, state: str) str ¶
치지직 Access Token을 발급받기 위한 URL를 생성합니다.
- 매개변수:
redirect_url (str) – 서드파티 인증을 마치고 이동될 리다이렉트 URL 입니다.
state (str) –
generate_access_token()
등의 함수의 state 매개변수에 사용될 임시 코드입니다.
- async generate_user_client(code: str, state: str) UserClient ¶
UserClient 객체를 생성합니다.
- 매개변수:
code (str) –
generate_authorization_token_url()
에서 응답받은 코드입니다.state (str) – 인증을 위해 사용되는 임시 코드입니다. :meth:`generate_authorization_token_url`의 매개변수에 사용된 state 코드와 동일해야 합니다.
- async get_live(size: int = 20) SearchResult[Live] ¶
방송 정보를 불러옵니다.
- 매개변수:
size (Optional[int], optional) – 한 번에 불러올 방송의 개수 입니다. 기본 값은 20개 입니다.
- async get_user_client(access_token: AccessToken) UserClient ¶
Access Toekn을 이용하여
UserClient
객체를 생성합니다.- 매개변수:
access_token (AccessToken) – Access Token 객체
- get_user_client_cached(channel_id: str) UserClient | None ¶
channel_id 를 이용하여
UserClient
객체를 불러옵니다.UserClient`의 채널 ID는 이벤트 구독하는 과정 또는 `유저 정보 조회
권한을 통해 불러옵니다.만약 :class:`UserClient`의 channel ID가 비어있다면, 클라이언트를 찾을 수 없습니다.
- 매개변수:
channel_id (str) –
UserClient
객체를 불러올 채널 ID 입니다.
- async login(state: str | None = None, redirect_url: str | None = None, remote_host: str = 'localhost', remote_port: int = 8080, remote_path: str = '/', success_response: webResponse | None = None, ssl: bool = False) UserClient ¶
UserClient
객체를 OAuth2 로그인 과정으로 불러옵니다.:meth:login 함수는 로그인을 위한 임시 웹 서버를 가동합니다.- 매개변수:
state (Optional[str]) – 인증 과정에서 사용되는 임시 코드입니다.
redirect_url (Optional[str]) – 인증 과정에서 사용되는 리다이렉션 URL입니다.
remote_host (str) – 임시 웹 서버에서 사용되는 Host URL이며, 기본 값은 “localhost” 입니다. 만약 공개 환경에서 웹 서버를 기동하고 싶으면 “0.0.0.0” 값을 매개변수로 입력하세요.
remote_port (int) – 임시 웹 서버에 사용할 포트이며, 기본 값은 8080 입니다.
remote_path (int) – 임시 웹 서버에 사용할 주소이며, 기본 값은 ‘/’ 입니다.
success_response (aiohttp.web.Response) – 로그인을 성공하면 웹사이트에 표시할 내용입니다.
ssl (bool) – 웹 브라우저에 HTTP(s)를 사용할 여부입니다.
- async refresh_access_token(refresh_token: str) AccessToken ¶
Access Token을 재생성 합니다. Access Token은 OAuth2 프로포콜을 따릅니다.
이 뜻은 일정 시간을 경과하면 Access Token이 만료된다는 것을 의미합니다.
- 매개변수:
refresh_token (str) – 재생성된 Access Token 입니다.
- async refresh_user_client(refresh_token: str) UserClient ¶
Refresh Token으로 재생성한
UserClient
객체를 불러옵니다.- 매개변수:
refresh_token (str) – 재생성된 Access Token 입니다.
- async wait_until_connect()¶
세션이 연결될 때까지 기다립니다.
User Client¶
- class UserClient(parent: Client, access_token: AccessToken)¶
치지직(네이버 스트리밍 서비스)의 사용자 API를 제공하는 클라이언트 객체입니다.
- async add_restrict_channel(user_id: str) None ¶
시청자 활동 제한합니다.
- 매개변수:
user_id (str) – 활동 제한할 시청자의 채널 ID입니다.
- async connect(permission: UserPermission, addition_connect: bool = False)¶
후원, 채팅 정보를 수신받기 위하여 사용자 세션에 연결합니다.
- 매개변수:
permission (UserPermission) – 후원, 채팅과 같이 수신받을 이벤트의 권한을 설정합니다. 세션에 연결을 마친 후 이벤트 구독을 진행하여 권한을 부여받습니다.
addition_connect (Optional[bool]) – 이 매개변수는 다중 채널 연결을 위해 사용되며, 기본 값은 False 입니다. 만약에 addition_connect의 값이 False 라면 메인 스레드는 이벤트를 수신받기 위해 사용됩니다. 하지만 addition_connect의 값이 True 라면, 이벤트를 수신받기 위한 작업은 백그라운드에서 진행되게 됩니다.
- 반환:
고유 세션 ID를 반환 받습니다. 세션 ID는 이벤트를 구독하는 용도로 사용됩니다.
- 반환 형식:
경고
만약에 메인 스레드의 작업이 없고, addition_connect 매개변수의 값이 True 라면, 모든 메인 스레드의 연산 작업을 마치고 연결은 중단됩니다.
- async disconnect()¶
세션 연결을 종료합니다.
- async fetch_self() Channel ¶
Access Token에 기반으로 한 자신의 채널 정보를 불러옵니다.이 함수를 사용하려면 “유저 정보 조회” API Scope가 필요합니다.
- 반환:
A channel based on the access token.
- 반환 형식:
- async get_channel_administrator() list[ChannelPermission] ¶
채널에 관리 권한을 가지고 있는 사용자 정보를 불러옵니다.
- async get_chat_setting() ChatSetting ¶
채팅 설정 정보를 불러옵니다.
- async get_followers(size: int = 30) SearchResult[FollowerInfo] ¶
채널에 팔로우한 시청자를 불러옵니다.
- 매개변수:
size (Optional[int]) – 한 번에 불러올 팔로워 수입니다. 기본 값은 30명 입니다.
- async get_live_setting() BrodecastSetting ¶
방송 설정을 불러옵니다.
- async get_restriction(size: int = 20) SearchResult[RestrictUser] ¶
채널에 활동 제한된 사용자를 불러옵니다.
- 매개변수:
size (Optional[int], optional) – 한 번에 불러올 방송의 개수 입니다. 기본 값은 20개 입니다.
- async get_subscribers(size: int = 30, sort: Literal['RECENT', 'LONGER'] = 'RECENT') SearchResult[SubscriberInfo] ¶
채널을 구독한 시청자를 불러옵니다.
- 매개변수:
size (Optional[int]) – 한 번에 불러올 구독자 수입니다. 기본 값은 30명 입니다.
sort (Optional[Literal['RECENT', 'LONGER']]) – 구독자를 정렬하는 방법입니다.
- async refresh()¶
Access Token을 갱신합니다.
- async remove_restrict_channel(user_id: str) None ¶
활동 제한된 사용자를 해제합니다.
- 매개변수:
user_id (str) – 활동 제한을 해제할 사용자의 채널 ID입니다.
- async revoke()¶
Access Token을 만료합니다.
- async send_announcement(content: str)¶
채팅에 공지사항을 전파합니다.이 함수를 사용하기 위해서는 “채널 공지 등록” API Scope가 필요합니다.
- 매개변수:
content (str) – 공지사항으로 전파할 내용
- async send_message(content: str) SentMessage ¶
채팅창에 메시지를 보냅니다.이 함수를 사용하기 위해서는 “채팅 메시지 전송” API Scope가 필요합니다.
- 매개변수:
content (str) – 보낼 메시지의 내용
- async subscribe(permission: UserPermission, session_id: str | None = None)¶
UserPermission을 이용하여 이벤트 구독을 진행합니다.
- 매개변수:
permission (UserPermission) – 수신받을 권한입니다.
session_id (Optional[str]) – 구독할 세션의 ID가 입력됩니다. 기본 값은 None이며, on_connect 이벤트에서 불러와진 매개변수를 입력하면 됩니다.
- async unsubscribe(permission: UserPermission, session_id: str | None = None)¶
UserPermission으로 구독했던 이벤트 구독을 해제합니다. 입력되는 매개변수에 따라 더 이상 이벤트를 수신받지 않습니다.
- 매개변수:
permission (UserPermission) – 더 이상 수신을 받지않을 권한입니다.
session_id (Optional[str]) – 이벤트 구독을 취소할 세션의 ID가 입력됩니다. 기본 값은 None이며, on_connect 이벤트에서 불러와진 매개변수를 입력하면 됩니다.
- async wait_until_connect()¶
세션이 연결될 때까지 기다립니다.
Event Reference¶
이 섹션은 Client
에서 수신받는 모든 이벤트에 대해 설명합니다. 이벤트는 Client.event 데코레이터를 이용하여 수신받을 수 있습니다.
예제:
>>> @client.event
... async def on_chat(message: Message):
... print(message.content)
모든 이벤트 함수는 반드시 비동기(코루틴) 이어야합니다. 비동기(코루틴)로 이벤트 함수를 구성하지 않으면 예상치 못한 예외를 초래할 수 있습니다.
- async on_chat(message: message.Message)¶
시청자와 주고 받는 메시지가 발생하면 호출되는 이벤트입니다.
- 매개변수:
message (Message) – 메시지
- async on_connect()¶
치지직 세션과 성공적으로 연결되면 호출되는 이벤트입니다.
- async on_donation(donation: Donation)¶
방송 중에 후원이 발생하면 호츨되는 이벤트입니다. 수신받는 후원 이벤트는 채팅 후원과, 영상 후원이 있습니다.
- 매개변수:
donation (Donation) – 후원한 정보를 담고 있는 객체입니다.
- async on_subscription(subscription: Subscription)¶
방송을 새롭게 구독한 시청자가 발생하면 호출되는 이벤트입니다.
- 매개변수:
subscription (Subscription) – 구독한 시청자의 정보를 담고 있는 객체입니다.
- async on_permission_invoked(EventSubscribeMessage message)¶
:class:`subscribe <chzzkpy.client.Client.subscribe> 함수를 이용하여새로운 권한을 부여받게 되면 호출되는 이벤트입니다.
- 매개변수:
message (EventSubscribeMessage) – 이벤트 구독 관련 정보가 담겨 있습니다.
- async on_permission_reinvoked(EventSubscribeMessage message)¶
unsubscribe
함수를 통해 권한이 취소되었다면 호출되는 이벤트입니다.- 매개변수:
message (EventSubscribeMessage) – 이벤트 구독 관련 정보가 담겨 있습니다.
- async on_permission_reinvoked_force(EventSubscribeMessage message)¶
사용자 권한 철회 등의 이유로 권한이 강제 취소되면 호출되는 이벤트입니다.
- 매개변수:
message (EventSubscribeMessage) – 이벤트 구독 관련 정보가 담겨 있습니다.
User Permission¶
Enumeration¶
Category¶
Channel¶
- class Channel¶
Chat¶
Live¶
- class Live¶
Message¶
- class Message¶
방송 중에 수신받은 메시지가 담긴 객체입니다.메시지는 on_chat 이벤트를 통해 수신받을 수 있습니다.
- async send(content)¶
수신받은 채널로 메시지를 회신합니다.
- 매개변수:
content (str) – 보낼 메시지 내용
- 반환:
보낸 메시지 정보를 담고 있는 객체
- 반환 형식:
- created_time: datetime.datetime¶
- class Donation¶
채널에 후원한 정보가 담긴 객체입니다.시청자가 방송 중에 후원하게 되면 on_donation 이벤트를 통해 수신받을 수 있습니다.
- async send(content)¶
수신받은 채널로 메시지를 회신합니다.
- 매개변수:
content (str) – 보낼 메시지 내용
- 반환:
보낸 메시지 정보를 담고 있는 객체
- 반환 형식:
- type: Literal['CHAT', 'VIDEO']¶
Restrict¶
예외 (Exceptions)¶
- exception LoginRequired¶
클라이언트가 로그인이 안된 상태에서 인증이 필요한 기능을 사용하면 호출되는 예욉니다.
- exception ChatConnectFailed¶
- exception ReceiveErrorPacket¶
- exception HTTPException¶
통신 과정에서 HTTP 오류가 발생하면 호출되는 예외입니다.
- exception BadRequestException¶
통신 과정에서 400(잘못된 요청)을 수신받으면 호출되는 예외입니다.
- exception UnauthorizedException¶
통신 과정에서 401(인증 안됨)을 수신받으면 호출되는 예외입니다.
- exception ForbiddenException¶
통신 과정에서 403(권한 없음)을 수신받으면 호출되는 예외입니다.
- exception NotFoundException¶
통신 과정에서 404을 수신받으면 호출되는 예외입니다.
- exception TooManyRequestsException¶
통신 과정에서 429(사용 한도 초과)을 수신받으면 호출되는 예외입니다.