כשמתחברים בפעם הראשונה, ה-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 , שמייצג סקר פעיל. אפשר ליצור רק סקר אחד בכל צ'אט. |
שגיאות
בטבלה הבאה מפורטות הודעות השגיאה שה-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, מה שגורם לבזבוז מיותר של רוחב פס. |