LiveChatMessages: streamList

เมธอดนี้สร้างการเชื่อมต่อการสตรีมมิงของเซิร์ฟเวอร์ที่ช่วยให้คุณรับข้อความแชทสดสำหรับการแชทที่เฉพาะเจาะจงด้วยเวลาในการตอบสนองต่ำได้ ซึ่งเป็นวิธีที่มีประสิทธิภาพมากที่สุดในการรับข้อความแชทสด เนื่องจากระบบจะส่งข้อความใหม่ไปยังไคลเอ็นต์ของคุณทันทีที่ข้อความพร้อมใช้งาน โดยไม่จำเป็นต้องให้คุณโพลเพื่อดูการอัปเดต

เมื่อคุณเชื่อมต่อครั้งแรก API จะส่งชุดข้อความที่มีประวัติการแชทล่าสุด และเมื่อมีการโพสต์ข้อความใหม่ เซิร์ฟเวอร์จะส่งข้อความเหล่านั้นผ่านการเชื่อมต่อที่เปิดอยู่ต่อไป

ข้อความในการตอบกลับของเซิร์ฟเวอร์แต่ละรายการจะเรียงลำดับจากเก่าสุดไปใหม่สุด นอกจากนี้ การตอบกลับแต่ละรายการยังมี nextPageToken ด้วย หากไคลเอ็นต์ของคุณตัดการเชื่อมต่อ คุณสามารถใช้โทเค็นนี้เพื่อเริ่มสตรีมต่อได้ โดยระบุ nextPageToken สุดท้ายที่คุณได้รับเป็นค่าสำหรับพารามิเตอร์ pageToken ในคำขอการเชื่อมต่อใหม่ จากนั้น API จะเริ่มส่งข้อความต่อจากจุดที่คุณค้างไว้

ผลกระทบต่อโควต้า: การเรียกเมธอดนี้มีค่าใช้จ่ายโควต้า 5 หน่วย

สาธิต

หากต้องการดูการสาธิตปลายทางนี้ใน Python โปรดดูคู่มือการสตรีมมิงแชทสด

ส่งคำขอ

พารามิเตอร์

ตารางต่อไปนี้แสดงพารามิเตอร์ที่การค้นหานี้รองรับ พารามิเตอร์ทั้งหมดที่แสดงเป็นพารามิเตอร์การค้นหา

พารามิเตอร์
พารามิเตอร์ที่จำเป็น
liveChatId string
พารามิเตอร์ liveChatId จะระบุรหัสของการแชทที่จะแสดงข้อความ ระบบจะแสดงรหัสแชทสดที่เชื่อมโยงกับการออกอากาศในพร็อพเพอร์ตี้ snippet.liveChatId ของทรัพยากร liveBroadcast
part string
พารามิเตอร์ part จะระบุส่วนของทรัพยากร liveChatMessage ที่การตอบกลับจาก API จะรวมไว้ ค่าที่รองรับคือ id, snippet และ authorDetails
พารามิเตอร์ที่ไม่บังคับ
hl string
พารามิเตอร์ hl จะสั่งให้ API ดึงสตริงการแสดงสกุลเงินท้องถิ่นที่แปลเป็นภาษาท้องถิ่นสำหรับ ภาษาของแอปพลิเคชันที่เฉพาะเจาะจงซึ่งเว็บไซต์ YouTube รองรับ เช่น ในภาษาอังกฤษ สกุลเงินจะแสดงเป็น $1.50 แต่ในภาษาฝรั่งเศสจะแสดงเป็น 1,50$

ค่าพารามิเตอร์ต้องเป็นรหัสภาษาที่รวมอยู่ในรายการที่แสดงผลโดยเมธอด i18nLanguages.list
maxResults unsigned integer

พารามิเตอร์ maxResults จะระบุจำนวนข้อความสูงสุดที่ควรแสดงในชุดผลลัพธ์ ค่าที่ยอมรับคือ 200 ถึง 2000 ซึ่งรวมค่าปลายทั้งสองด้วย ค่าเริ่มต้นคือ 500

คำขอเริ่มต้นที่ส่งโดยไม่มีโทเค็นการต่อเนื่องจะมีเฉพาะเหตุการณ์ล่าสุดเท่านั้น ซึ่งอาจมีค่าน้อยกว่า maxResults หากมีการระบุไว้

API จะไม่ดึงข้อมูลเหตุการณ์ที่เก่ากว่าเหตุการณ์ที่แสดงผลโดยคำขอเริ่มต้นที่ส่งโดยไม่มีโทเค็นการต่อเนื่อง

pageToken string
พารามิเตอร์ pageToken จะระบุหน้าเฉพาะในชุดผลลัพธ์ที่ควรแสดง ในการตอบกลับจาก API พร็อพเพอร์ตี้ nextPageToken จะระบุหน้าอื่นๆ ที่ดึงข้อมูลได้
profileImageSize unsigned integer
พารามิเตอร์ profileImageSize จะระบุขนาดของรูปโปรไฟล์ผู้ใช้ที่ควรแสดงในชุดผลลัพธ์ รูปภาพจะเป็นสี่เหลี่ยมจัตุรัส ค่าเริ่มต้นคือ 88 ซึ่งหมายความว่ารูปภาพจะมีขนาด 88x88 พิกเซล ค่าที่ยอมรับอยู่ในช่วง 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
ข้อมูลโพลในข้อความ โพลแต่ละรายการคือทรัพยากร 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 ซึ่งเป็นการสิ้นเปลืองแบนด์วิดท์โดยไม่จำเป็น