這個方法會建立伺服器串流連線,讓您以低延遲時間接收特定聊天室的即時通訊訊息。這是最有效率的即時通訊訊息接收方式,因為系統會在有新訊息時立即推送至用戶端,您不必輪詢更新。
首次連線時,API 會傳送一系列訊息,內含最近的即時通訊記錄。伺服器會透過開啟的連線,持續傳送新訊息。
每個伺服器回應中的訊息都會依時間排序,由舊到新。每個回覆也包含
首次連線時,API 會傳送一系列訊息,內含最近的即時通訊記錄。伺服器會透過開啟的連線,持續傳送新訊息。
每個伺服器回應中的訊息都會依時間排序,由舊到新。每個回覆也包含
nextPageToken。如果用戶端中斷連線,您可以使用這個權杖繼續串流。如要這麼做,請在新的連線要求中,將您收到的最後一個 nextPageToken 做為 pageToken 參數的值。API 隨後會從上次中斷的地方繼續傳送訊息。
  示範
如需這個端點的 Python 試用版,請參閱「串流直播聊天室」指南。
要求
參數
下表列出這項查詢支援的參數。列出的所有參數都是查詢參數。
| 參數 | ||
|---|---|---|
| 必要參數 | ||
| liveChatId | stringliveChatId參數指定要傳回訊息的即時通訊 ID。與廣播相關聯的即時通訊 ID 會在liveBroadcast資源的snippet.liveChatId屬性中傳回。 | |
| part | stringpart參數會指定 API 回應中要包含的liveChatMessage資源部分。支援的值為id、snippet和authorDetails。 | |
| 選用參數 | ||
| hl | stringhl參數會指示 API 擷取特定YouTube 網站支援的應用程式語言的本地化貨幣顯示字串。舉例來說,在英文中,貨幣會顯示為$1.50,但在法文中會顯示為1,50$。參數值必須是 i18nLanguages.list方法傳回清單中包含的語言代碼。 | |
| maxResults | unsigned integermaxResults參數會指定結果集中應傳回的訊息數量上限。可接受介於200到2000(包含這兩者) 之間的值。預設值為500。 | |
| 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 | string識別 API 資源的類型。值為 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訊息中的投票資料。每個投票都是 liveChatMessage資源,類型為pollEvent,代表有效投票。每個對話只能有一個意見調查。 | 
錯誤
下表列出 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 的重新整理率,就會發生這項錯誤,因為這樣會不必要地浪費頻寬。 |