このメソッドは、特定のチャットのライブチャット メッセージを低レイテンシで受信できるサーバー ストリーミング接続を確立します。これは、更新をポーリングする必要がなく、新しいメッセージが利用可能になるとすぐにクライアントにプッシュされるため、ライブチャット メッセージを最も効率的に使用する方法です。
初回接続時に、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 パラメータは、YouTube ウェブサイトがサポートする特定のアプリ言語のローカライズされた通貨表示文字列を取得するよう API に指示します。たとえば、英語では通貨は $1.50 と表示されますが、フランス語では 1,50$ と表示されます。パラメータ値は、 i18nLanguages.list メソッドから返されるリストに含まれる言語コードである必要があります。 |
|
maxResults |
unsigned integer maxResults パラメータは、結果セットで返されるメッセージの最大数を指定します。設定可能な値は 200 ~2000 です。デフォルト値は 500 です。 |
|
pageToken |
string pageToken パラメータは、返される結果セット内の特定のページを識別します。API レスポンスでは、nextPageToken プロパティは取得可能な他のページを識別します。 |
|
profileImageSize |
unsigned integer profileImageSize パラメータは、結果セットで返されるユーザー プロフィール写真のサイズを指定します。画像は正方形です。デフォルト値は 88 です。つまり、画像は 88 ピクセル × 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 |
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 リソースです。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 の更新頻度よりも頻繁に送信され、帯域幅が無駄になっている場合に発生します。 |