(레거시) 채팅 기능, API 래퍼런스

클라이언트 (Client)

class ChatClient(channel_id: str, authorization_key: str | None = None, session_key: str | None = None, chat_channel_id: str | None = None, loop: AbstractEventLoop | None = None)

기반 클래스: Client

채팅 기능이 포함된, 치지직(네이버 스트리밍 서비스)와 연결하기 위한 객체를 제공합니다.

async blind_message(message: ChatMessage) None

채팅 운영자 권한으로 사용자의 메시지를 삭제합니다.

매개변수:

message (ChatMessage) – 삭제할 채팅이 담긴 객체입니다.

async close()

치지직 채팅 서버 연결을 종료합니다.

async delete_notice_message() None

고정된 메시지를 해제합니다..

async history(count: int = 50) list[ChatMessage]

과거 채팅 기록을 불러옵니다.

매개변수:

count (Optional[int]) – 최신 메시지를 기준으로 불러올 과거의 채팅 개수입니다. 기본 값은 50입니다.

반환:

방송인의 과거 채팅 기록을 최신 기록부터 불러옵니다.

반환 형식:

list[ChatMessage]

async live_detail(channel_id: str | None = None)

채널의 방송 정보를 불러옵니다.

매개변수:

channel_id (Optional[str]) – 방송인의 채널 ID입니다. 기본 값은 ChatClient의 채널 ID입니다.

반환:

방송 중인 정보를 반환합니다. 방송인이 오랫동안 방송하지 않으면 None이 반환될 수도 있습니다.

반환 형식:

Optional[LiveDetail]

async live_status(channel_id: str | None = None)

채널의 방송 상태 정보를 불러옵니다.

매개변수:

channel_id (Optional[str]) – 방송인의 채널 ID입니다. 기본 값은 ChatClient의 채널 ID입니다.

반환:

채널의 방송 상태를 반환합니다. 방송인이 오랫동안 방송하지 않으면 None이 반환될 수도 있습니다.

반환 형식:

Optional[LiveStatus]

login(authorization_key: str, session_key: str)

치지직에 로그인합니다.

매개변수:
  • authorization_key (str) – NID AUT 쿠키 값

  • session_key (str) – NID_SES 쿠키 값

manage(channel_id: str | None = None) ManageClient

방송 관리 기능을 제공하는 클라이언트 객체를 불러옵니다.

매개변수:

channel_id (Optional[str]) – 채널을 관리할 ID입니다. 기본 값으로는 마지막으로 불러온 관리 클라이언트의 채널 ID를 사용합니다.만약 마지막으로 불러온 관리 클라이언트의 채널 ID도 없으면 ChatClient의 채널 ID를 사용합니다.

반환:

채널 관리 기능을 제공하는 클라이언트 객체를 반환받습니다.

반환 형식:

ManageClient

async profile_card(user: PartialUser | str) Profile

프로필 카드를 불러옵니다.

매개변수:

user (ParticleUser | str) – 프로필 카드를 불러올 시청자의 객체입니다. 객체 대신에 사용자 ID가 사용될 수 있습니다.

반환:

팔로잉 정보 등을 담고 있는 프로필 카드를 반환합니다.

반환 형식:

Profile

async request_recent_chat(count: int = 50)

치지직 채팅 서버에 과거 채팅 기록을 불러오는 요청을 보냅니다. 이 함수는 요청`만 합니다. 만약에 과거 채팅 기록을 불러오고 싶다면, `history() 함수를 이용해주세요.

매개변수:

count (Optional[int]) – 최신 메시지를 기준으로 불러올 과거의 채팅 개수입니다. 기본 값은 50입니다.

예외 발생:

RuntimeError – 치지직의 채팅 서버와 연결되지 않았을 때, 발생하는 예외입니다.

async send_chat(message: str) None

실시간 방송에 채팅 메시지를 보냅니다.

매개변수:

message (str) – 실시간 방송에 보낼 메시지입니다.

예외 발생:

RuntimeError – 치지직의 채팅 서버와 연결되지 않았을 때, 발생하는 예외입니다.

async set_notice_message(message: ChatMessage) None

메시지를 고정합니다.

매개변수:

message (ChatMessage) – 고정할 메시지가 담긴 객체입니다.

async temporary_restrict(user: PartialUser | str) PartialUser

시청자에게 임시 활동 제한을 합니다. 임시 활동제한은 임의로 제한을 해제할 수 없습니다.

매개변수:

user (ParticleUser | str) – 임시 활동 제한할 시청자의 객체입니다. 객체 대신에 사용자 ID가 입력될 수 있습니다.

반환:

시청자 임시 활동제한 정보를 반환받습니다.

반환 형식:

ParticleUser

wait_for(event: str, check: Callable[[...], bool] | None = None, timeout: float | None = None)

Websocket에서 호출되는 이벤트 함수를 대기합니다.

매개변수:
  • event (str) – The event name. For a list of events, read event()

  • check (Optional[Callable[..., bool]],) – 조건에 충족하는지 확인하는 콜백 함수입니다.

  • timeout (Optional[float]) – 대기할 시간을 설정합니다. 시간 초과하면:exc:asyncio.TimeoutError 예외처리가 발생합니다.

async wait_until_connected() None

치지직 채팅 서버 연결이 될 때까지 기다리는 함수입니다.

property is_connected: bool

치지직 채팅 서버와 올바르게 연결되었는지 확인합니다.

property manage_self: ManageClient

자신 채널 관리 기능을 제공하고 있는 클라이언트를 불러옵니다.

이벤트 함수 (Event Refenence)

This section describes the events listened that ChatClient received. You can received event with decorator event method.

예제:

>>> @client.event
... async def on_chat(message: ChatMessage):
...     print(message.content)

모든 이벤트 함수는 비동기(Coroutine) 함수여야 합니다. 그러지 않으면, 예상치 못한 오류를 초래할 수 있습니다.

async on_chat(message: ChatMessage)

Call when a ChatMesage is created and sent.

매개변수:

message (ChatMessage) – 새롭게 만들어진 메시지입니다.

async on_connect()

치지직 채팅 서버와 연결을 성공하면 호출하는 이벤트 함수입니다.

async on_donation(donation: DonationMessage)

방송인이 채팅 후원, 영상 후원, 미션 후원 등의 후원을 받으면 호출하는 이벤트 함수입니다,

매개변수:

donation (DonationMessage) – 후원 메시지가 담긴 객체입니다.

async on_system_message(system_message: SystemMessage)

Called when a SystemMessage is created and sent.

매개변수:

message (SystemMessage) – 시스템 메시지입니다.

async on_subscription(subscription: SubscriptionMessage)

시청자가 방송인의 채널에 새로운 구독을하면 호출되는 이벤트 함수입니다.

매개변수:

subscription (SubscriptionMessage) – 구독 정보가 담긴 메시지 객체 입니다.

async on_recent_chat(messages: RecentChat)

과거 채팅 기록을 요청하는 함수가 호출되고, 응답을 받으면 호출되는 이벤트 함수입니다.요청은 ChatClient.request_recent_chat 함수로 호출할 수 있습니다.

매개변수:

messages (RecentChat) – 과거 채팅 기록입니다.

async on_pin(message: NoticeMessage)

방송인이 메시지를 고정하면 호출되는 이벤트 함수입니다. on_pin 대신에 on_notice 이벤트 함수로 대체할 수 있습니다.

매개변수:

message (NoticeMessage) – 고정한 메시지가 담긴 객체입니다.

async on_unpin(message: NoticeMessage)

고정된 메시지가 삭제되면 호출되는 이벤트 함수입니다.

매개변수:

message (NoticeMessage) – 고정이 해제된 메시지가 담긴 객체입니다.

async on_blind(message: Blind)

채팅 운영자가 메시지를 삭제하면 호출하는 함수입니다.

매개변수:

message (Blind) – 삭제된 메시지가 담긴 객체입니다.

async on_mission_completed(mission: MissionDonation)

방송인이 미션을 성공하면 호출되는 이벤트 함수입니다.

매개변수:

mission (MissionDonation) – 성공한 미션 정보가 담긴 객체입니다.

async on_mission_pending(mission: MissionDonation)

방송인이 새로운 미션을 요청받으면 호출되는 이벤트 함수입니다.

매개변수:

mission (MissionDonation) – 성공한 미션 정보가 담긴 객체입니다.

async on_mission_approved(mission: MissionDonation)

요청받은 미션을 방송인이 승인하면 호출되는 이벤트 함수입니다.

매개변수:

mission (MissionDonation) – 승인된 미션 정보가 담긴 객체입니다.

async on_mission_rejected(mission: MissionDonation)

요청받은 미션을 방송인이 거부하면 호출되는 이벤트 함수입니다.

매개변수:

mission (MissionDonation) – 거절된 미션 정보가 담긴 객체입니다.

async on_client_error(exception: Exception, *args, **kwargs)

이벤트 호출간에 예외가 발생하면 호출되는 이벤트 함수입니다. `*args`과 `**kwargs`에는 예외가 발생한 이벤트 함수의 인수(Parameter) 값이 들어있습니다.

Blind

이 데이터 모델은 on_blind 이벤트 함수를 호출하는 데 사용됩니다.

class Blind
blind_type: str
blind_user_id: str | None
message: str | None
service_id: str
time: datetime
user_id: str

Connection

class ConnectedInfo
access_token: str
auth: Literal['SEND', 'READ']
session_id: str
uuid: str | None

Donation

class DonationRank
donation_amount: int
nickname: str
ranking: int
user_id_hash: str
verified_mark: bool
class BaseDonation
donation_type: str
donation_user_weekly_rank: DonationRank | None
is_anonymous: bool
pay_amount: int
pay_type: str
verified_mark: bool | None
weekly_rank_list: list[DonationRank] | None
class ChatDonation

기반 클래스: BaseDonation

donation_type: Literal['CHAT']
class VideoDonation

기반 클래스: BaseDonation

donation_type: Literal['VIDEO']
class MissionDonation

기반 클래스: BaseDonation

anonymous_token: str | None
donation_id: str | None
donation_type: Literal['MISSION']
duration_time: int
mission_created_time: datetime.datetime
mission_donation_id: str | None
mission_donation_type: str | None
mission_end_time: datetime.datetime | None
mission_start_time: datetime.datetime | None
mission_text: str
nickname: str | None
participation_count: int
status: str | Literal['PENDING', 'REJECTED', 'APPROVED', 'COMPLETED']
success: bool
total_pay_amount: int
user_id_hash: str | None

Message

class Message
async send(message: str)

Send message to broadcaster.

channel_id: str
content: str
created_time: datetime.datetime
extras: Json[E] | None
property is_me: bool

메시지가 자신이 보낸 메시지인지 확인합니다. 로그인이 필요한 기능입니다.

profile: Json[Profile] | None
service_id: str
time: datetime.datetime
type: ChatType
updated_time: datetime.datetime | None
user_id: str
class MessageDetail

기반 클래스: Message, Generic[E]

property is_blind: bool
member_count: int
message_status: str | None
class ChatMessage

기반 클래스: MessageDetail[Extra]

async blind()

채팅 운영자의 권한으로 메시지를 삭제합니다.

async pin()

메시지를 고정합니다.

async temporary_restrict()

사용자에게 임시 활동제한을 적용합니다.

async unpin()

메시지 고정을 해제합니다.

class NoticeMessage

기반 클래스: Message[NoticeExtra]

async unpin()

메시지 고정을 해제합니다.

class DonationMessage

기반 클래스: MessageDetail[Union[ChatDonationExtra, VideoDonationExtra, MissionDonationExtra, MissionParticipationDonation]]

async approve()
async reject()
class SubscriptionMessage

기반 클래스: MessageDetail[SubscriptionExtra]

class SystemMessage

기반 클래스: MessageDetail[SystemExtra]

Message Extra

class Extra
chat_type: str
emojis: Any | None
os_type: Literal['PC', 'AOS', 'IOS']
streaming_channel_id: str
class NoticeExtra

기반 클래스: Extra

register_profile: Profile
class ChatDonationExtra

기반 클래스: ChatDonation

class VideoDonationExtra

기반 클래스: VideoDonation

class MissionDonationExtra

기반 클래스: MissionDonation

class SubscriptionExtra

기반 클래스: ExtraBase

month: int
nickname: str | None
tier_name: str
tier_no: int | None
class SystemExtra

기반 클래스: ExtraBase

description: str
params: SystemExtraParameter | None
style_type: int
visible_roles: list[str]
class SystemExtraParameter

기반 클래스: ChzzkModel

register_chat_profile: Json[Profile] | None
register_nickname: str
target_nickname: str
target_profile: Json[Profile] | None

Profile

class Profile
activity_badges: list[ActivityBadge]
property badge: Badge | None
property color: str | None
streaming_property: StreamingProperty | None
user_role: UserRole | None
viewer_badges: list[ViewerBadge]
class Badge
image_url: str | None
name: str | None
class ActivityBadge

기반 클래스: Badge

activated: bool
badge_id: str
badge_no: int
description: str | None
class StreamingProperty
property donation_ranking_badge: Badge | None
property following_date: str | None
property nickname_color: str | None
property subscription: SubscriptionInfo | None

Recent Chat

이 데이터 모델은 on_recent_chat 이벤트 함수에서 사용됩니다.방송인의 채널의 과거 채팅 기록을 담고 있습니다.

class RecentChat
message_list: list[ChatMessage]
notice: NoticeMessage | None
user_count: int | None

Exceptions

Chat Features 페이지에서 발생하는 예외는 ChatClient`에서 발생할 수 있는 추가적인 예외상황입니다. `Basic Features 페이지에서 발생하는 예외도 발생할 수 있습니다.

exception ChatConnectFailed
exception ConnectionClosed
exception WebSocketClosure
exception ReconnectWebsocket