LiveChatMessages: streamList

이 메서드는 지연 시간이 짧은 특정 채팅의 실시간 채팅 메시지를 수신할 수 있는 서버 스트리밍 연결을 설정합니다. 업데이트를 폴링할 필요 없이 새 메시지가 제공되는 즉시 클라이언트에 푸시되므로 실시간 채팅 메시지를 사용하는 가장 효율적인 방법입니다.

처음 연결하면 API는 최근 채팅 기록이 포함된 일련의 메시지를 전송합니다. 새 메시지가 게시되면 서버는 열린 연결을 통해 계속 전송합니다.

각 서버 응답의 메시지는 가장 오래된 메시지부터 가장 최근 메시지 순으로 정렬됩니다. 각 응답에는 nextPageToken도 포함됩니다. 클라이언트 연결이 끊어지면 이 토큰을 사용하여 스트림을 재개할 수 있습니다. 이렇게 하려면 새 연결 요청에서 pageToken 매개변수의 값으로 수신한 마지막 nextPageToken을 제공합니다. 그러면 API는 중단된 지점부터 메시지 전송을 재개합니다.

데모

이 엔드포인트의 Python 데모는 스트리밍 실시간 채팅 가이드를 참고하세요.

요청

매개변수

다음 표에는 이 쿼리에서 지원하는 매개변수가 나와 있습니다. 나열된 모든 매개변수는 쿼리 매개변수입니다.

매개변수
필수 매개변수
liveChatId string
liveChatId 매개변수는 메시지가 반환될 채팅의 ID를 지정합니다. 방송과 연결된 실시간 채팅 ID는 liveBroadcast 리소스의 snippet.liveChatId 속성에 반환됩니다.
part string
part 매개변수는 API 응답에 포함될 liveChatMessage 리소스 부분을 지정합니다. 지원되는 값은 id, snippet, authorDetails입니다.
선택적 매개변수
hl string
hl 매개변수는 YouTube 웹사이트에서 지원하는 특정 애플리케이션 언어의 현지화된 통화 표시 문자열을 검색하도록 API에 지시합니다. 예를 들어 영어에서는 통화가 $1.50으로 표시되지만 프랑스어에서는 1,50$으로 표시됩니다.

매개변수 값은 i18nLanguages.list 메서드에서 반환된 목록에 포함된 언어 코드여야 합니다.
maxResults unsigned integer

maxResults 매개변수는 결과 집합에서 반환되어야 하는 최대 메시지 수를 지정합니다. 허용되는 값은 200~2000(포함)입니다. 기본값은 500입니다.

연속 토큰 없이 이루어진 초기 요청에는 가장 최근 이벤트만 포함됩니다. 제공된 경우 maxResults보다 작을 수 있습니다.

API는 연속 토큰 없이 이루어진 초기 요청에서 반환된 이벤트보다 오래된 이벤트를 검색하지 않습니다.

pageToken string
pageToken 매개변수는 반환되어야 하는 결과 집합의 특정 페이지를 식별합니다. API 응답에서 nextPageToken 속성은 검색할 수 있는 다른 페이지를 식별합니다.
profileImageSize unsigned integer
profileImageSize 매개변수는 결과 집합에서 반환되어야 하는 사용자 프로필 사진의 크기를 지정합니다. 이미지는 정사각형입니다. 기본값은 88이며, 이는 사진이 88x88픽셀임을 의미합니다. 허용되는 값은 16~720(포함) 범위에 있습니다.

요청 본문

이 메서드를 호출할 때는 요청 본문을 제공하지 마세요.

응답

요청에 성공할 경우 이 메소드는 다음과 같은 구조의 응답 본문을 반환합니다.

{
  "kind": "youtube#liveChatMessageListResponse",
  "etag": etag,
  "nextPageToken": string,
  "pollingIntervalMillis": unsigne{d integer,
  "offlineAt": datetime,
  "pageInfo}": 
    "totalResults": integer,
    "resultsPerPage": integer
  ,
  }"items": [
    liveChatMessage Resource
  ],
  "activePollItem": liveChatMessage Resource

속성

다음 표는 이 리소스에 표시되는 속성을 정의합니다.

속성
kind string
API 리소스의 유형을 식별합니다. 값은 youtube#liveChatMessageListResponse입니다.
etag etag
이 리소스의 ETag입니다.
nextPageToken string
결과 집합의 다음 페이지를 검색하기 위해 pageToken 매개변수의 값으로 사용할 수 있는 토큰입니다.
offlineAt datetime
기본 라이브 스트림이 오프라인 상태가 된 날짜와 시간입니다. 이 속성은 스트림이 이미 오프라인 상태인 경우에만 표시됩니다. 값은 ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) 형식으로 지정됩니다.
pageInfo object
pageInfo 객체는 결과 집합의 페이지 나누기 정보를 캡슐화합니다.
pageInfo.totalResults integer
결과 집합의 총 결과 수입니다.
pageInfo.resultsPerPage integer
API 응답에 포함된 결과 수입니다.
items[] list
메시지 목록입니다. 목록의 각 항목은 liveChatMessage 리소스입니다.
activePollItem object
메시지의 설문조사 데이터입니다. 각 설문조사는 활성 설문조사를 나타내는 pollEvent 유형의 liveChatMessage 리소스입니다. 채팅당 설문조사는 하나만 있을 수 있습니다.

오류

다음 표에는 이 메서드 호출에 대한 응답으로 API에서 반환할 수 있는 오류 메시지가 나와 있습니다. 자세한 내용은 오류 메시지 문서를 참고하세요.

gRPC를 사용하여 연결하는 경우:

gRPC 오류 코드 오류 세부정보 설명
PERMISSION_DENIED (7) The caller does not have permission 지정된 실시간 채팅의 메시지를 검색하는 데 필요한 권한이 없습니다.
INVALID_ARGUMENT (3) Request contains an invalid argument 제공된 매개변수를 파싱하지 못했습니다. liveChatId 및 기타 매개변수가 올바른 형식인지 확인하세요.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_DISABLED. 지정된 실시간 채팅이 사용 중지되었습니다.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_ENDED. 종료된 실시간 채팅의 메시지를 검색할 수 없습니다.
NOT_FOUND (5) Requested entity was not found 검색하려는 실시간 채팅을 찾을 수 없습니다. 요청의 liveChatId 매개변수 값이 올바른지 확인하세요.
RESOURCE_EXHAUSTED (8) Resource has been exhausted (e.g. check quota) 이전 요청 후 너무 빨리 요청이 전송되었습니다. 이 오류는 메시지를 검색하는 API 요청이 YouTube의 새로고침 빈도보다 더 자주 전송되어 대역폭이 불필요하게 낭비되는 경우에 발생합니다.

* gRPC 제한으로 인해 오류 코드를 기준으로 LIVE_CHAT_DISABLED 사례와 LIVE_CHAT_ENDED 사례를 구분할 수 없습니다. YouTube는 이 문제를 해결하기 위해 적극적으로 노력하고 있습니다.

웹 트래픽을 사용하여 연결하는 경우:

오류 유형 오류 세부정보 설명
HttpStatus.FORBIDDEN (403) forbidden 지정된 실시간 채팅의 메시지를 검색하는 데 필요한 권한이 없습니다.
HttpStatus.BAD_REQUEST (400) Reason for invalid request, e.g. pageTokenInvalid 제공된 매개변수를 파싱하지 못했습니다. liveChatId 및 기타 매개변수가 올바른 형식인지 확인하세요.
HttpStatus.FORBIDDEN (403) liveChatDisabled LIVE_CHAT_DISABLED. 지정된 실시간 채팅이 사용 중지되었습니다.
HttpStatus.FORBIDDEN (403) liveChatEnded LIVE_CHAT_ENDED. 종료된 실시간 채팅의 메시지를 검색할 수 없습니다.
HttpStatus.NOT_FOUND (404) liveChatNotFound 검색하려는 실시간 채팅을 찾을 수 없습니다. 요청의 liveChatId 매개변수 값이 올바른지 확인하세요.
HttpStatus.FORBIDDEN (403) rateLimitExceeded 이전 요청 후 너무 빨리 요청이 전송되었습니다. 이 오류는 메시지를 검색하는 API 요청이 YouTube의 새로고침 빈도보다 더 자주 전송되어 대역폭이 불필요하게 낭비되는 경우에 발생합니다.