最初に接続すると、API は最近のチャット履歴を含む一連のメッセージを送信します。新しいメッセージが投稿されると、サーバーは開いている接続を介してメッセージを送信し続けます。
各サーバー レスポンス内のメッセージは、古い順に並べ替えられます。各レスポンスには
nextPageToken も含まれます。クライアントが切断された場合は、このトークンを使用してストリームを再開できます。これを行うには、新しい接続リクエストの pageToken パラメータの値として、最後に受信した nextPageToken を指定します。API は、中断したところからメッセージの送信を再開します。割り当てへの影響: このメソッドを呼び出すと、5 ユニットの割り当て費用が発生します。
デモ
このエンドポイントの 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 です。つまり、画像は 88 ピクセル x 88 ピクセルになります。有効な値は 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 |
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 リソースです。1 つのチャットに設定できるアンケートは 1 つのみです。 |
エラー
次の表に、このメソッドの呼び出しに対して 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 の更新頻度よりも頻繁に送信され、帯域幅が無駄になっている場合に発生します。 |