처음 연결하면 API는 최근 채팅 기록이 포함된 일련의 메시지를 전송합니다. 새 메시지가 게시되면 서버는 열린 연결을 통해 계속 전송합니다.
각 서버 응답의 메시지는 가장 오래된 메시지부터 가장 최근 메시지 순으로 정렬됩니다. 각 응답에는
nextPageToken도 포함됩니다. 클라이언트 연결이 끊어지면 이 토큰을 사용하여 스트림을 재개할 수 있습니다. 이렇게 하려면 새 연결 요청에서 pageToken 매개변수의 값으로 수신한 마지막 nextPageToken을 제공합니다. 그러면 API는 중단된 지점부터 메시지 전송을 재개합니다.
데모
이 엔드포인트의 Python 데모는 스트리밍 실시간 채팅 가이드를 참고하세요.
요청
매개변수
다음 표에는 이 쿼리에서 지원하는 매개변수가 나와 있습니다. 나열된 모든 매개변수는 쿼리 매개변수입니다.
| 매개변수 | ||
|---|---|---|
| 필수 매개변수 | ||
liveChatId |
stringliveChatId 매개변수는 메시지가 반환될 채팅의 ID를 지정합니다. 방송과 연결된 실시간 채팅 ID는 liveBroadcast 리소스의 snippet.liveChatId 속성에 반환됩니다. |
|
part |
stringpart 매개변수는 API 응답에 포함될 liveChatMessage 리소스 부분을 지정합니다. 지원되는 값은 id, snippet, authorDetails입니다. |
|
| 선택적 매개변수 | ||
hl |
stringhl 매개변수는 YouTube 웹사이트에서 지원하는 특정 애플리케이션 언어의 현지화된 통화 표시 문자열을 검색하도록 API에 지시합니다. 예를 들어 영어에서는 통화가 $1.50으로 표시되지만 프랑스어에서는 1,50$으로 표시됩니다.매개변수 값은 i18nLanguages.list 메서드에서 반환된 목록에 포함된 언어 코드여야 합니다. |
|
maxResults |
unsigned integer
연속 토큰 없이 이루어진 초기 요청에는 가장 최근 이벤트만 포함됩니다. 제공된 경우 API는 연속 토큰 없이 이루어진 초기 요청에서 반환된 이벤트보다 오래된 이벤트를 검색하지 않습니다. |
|
pageToken |
stringpageToken 매개변수는 반환되어야 하는 결과 집합의 특정 페이지를 식별합니다. API 응답에서 nextPageToken 속성은 검색할 수 있는 다른 페이지를 식별합니다. |
|
profileImageSize |
unsigned integerprofileImageSize 매개변수는 결과 집합에서 반환되어야 하는 사용자 프로필 사진의 크기를 지정합니다. 이미지는 정사각형입니다. 기본값은 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 |
stringAPI 리소스의 유형을 식별합니다. 값은 youtube#liveChatMessageListResponse입니다. |
etag |
etag이 리소스의 ETag입니다. |
nextPageToken |
string결과 집합의 다음 페이지를 검색하기 위해 pageToken 매개변수의 값으로 사용할 수 있는 토큰입니다. |
offlineAt |
datetime기본 라이브 스트림이 오프라인 상태가 된 날짜와 시간입니다. 이 속성은 스트림이 이미 오프라인 상태인 경우에만 표시됩니다. 값은 ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ) 형식으로 지정됩니다. |
pageInfo |
objectpageInfo 객체는 결과 집합의 페이지 나누기 정보를 캡슐화합니다. |
pageInfo.totalResults |
integer결과 집합의 총 결과 수입니다. |
pageInfo.resultsPerPage |
integerAPI 응답에 포함된 결과 수입니다. |
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의 새로고침 빈도보다 더 자주 전송되어 대역폭이 불필요하게 낭비되는 경우에 발생합니다. |