이 메서드는 지연 시간이 짧은 특정 채팅의 실시간 채팅 메시지를 수신할 수 있는 서버 스트리밍 연결을 설정합니다. 이 방법은 업데이트를 폴링할 필요 없이 새 메시지가 제공되는 즉시 클라이언트에 푸시하므로 실시간 채팅 메시지를 사용하는 가장 효율적인 방법입니다.
처음 연결하면 API에서 최근 채팅 기록이 포함된 일련의 메시지를 전송합니다. 새 메시지가 게시되면 서버는 열린 연결을 통해 계속 전송합니다.
각 서버 응답의 메시지는 오래된 것부터 최신 것까지 순서대로 정렬됩니다. 각 응답에는
처음 연결하면 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 매개변수는 API에 YouTube 웹사이트에서 지원하는 특정 애플리케이션 언어의 현지화된 통화 표시 문자열을 가져오도록 지시합니다. 예를 들어 영어에서는 통화가 $1.50 로 표시되지만 프랑스어에서는 1,50$ 로 표시됩니다.매개변수 값은 i18nLanguages.list 메서드에서 반환된 목록에 포함된 언어 코드여야 합니다. |
|
maxResults |
unsigned integer maxResults 매개변수는 결과 집합에 반환되어야 하는 최대 메시지 수를 지정합니다. 허용되는 값은 200 ~2000 입니다. 기본값은 500 입니다. |
|
pageToken |
string pageToken 매개변수는 반환되어야 하는 결과 집합의 특정 페이지를 식별합니다. API 응답에서 nextPageToken 속성은 가져올 수 있는 다른 페이지를 식별합니다. |
|
profileImageSize |
unsigned integer profileImageSize 매개변수는 결과 집합에 반환되어야 하는 사용자 프로필 사진의 크기를 지정합니다. 이미지가 정사각형입니다. 기본값은 88 이며, 이는 사진이 88px x 88px임을 의미합니다. 허용되는 값은 16 ~720 입니다. |
요청 본문
이 메서드를 호출할 때는 요청 본문을 제공하지 마세요.
응답
요청에 성공할 경우 이 메소드는 다음과 같은 구조의 응답 본문을 반환합니다.
{ "kind": "youtube#liveChatMessageListResponse", "etag": etag, "nextPageToken": string, "pollingIntervalMillis": unsigned 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의 새로고침 빈도보다 더 자주 전송되어 불필요하게 대역폭이 낭비되는 경우에 발생합니다. |