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