LiveChatMessages: streamList

इस तरीके से, सर्वर-स्ट्रीमिंग कनेक्शन बनाया जाता है. इससे आपको किसी खास चैट के लिए, कम समय में लाइव चैट मैसेज मिलते हैं. लाइव चैट के मैसेज पाने का यह सबसे असरदार तरीका है. इसमें नए मैसेज उपलब्ध होते ही, आपके क्लाइंट को भेज दिए जाते हैं. इसके लिए, आपको अपडेट के लिए पोल करने की ज़रूरत नहीं होती.

पहली बार कनेक्ट करने पर, एपीआई हाल ही की चैट के इतिहास वाले मैसेज की एक सीरीज़ भेजता है. नए मैसेज पोस्ट होने पर, सर्वर उन्हें खुले कनेक्शन के ज़रिए भेजता रहेगा.

सर्वर से मिले हर जवाब में मौजूद मैसेज, सबसे पुराने से लेकर सबसे नए मैसेज के क्रम में होते हैं. हर जवाब में nextPageToken भी शामिल होता है. अगर आपका क्लाइंट डिसकनेक्ट हो जाता है, तो स्ट्रीम फिर से शुरू करने के लिए इस टोकन का इस्तेमाल किया जा सकता है. इसके लिए, नए कनेक्शन के अनुरोध में pageToken पैरामीटर की वैल्यू के तौर पर, आपको मिला आखिरी nextPageToken डालें. इसके बाद, एपीआई वहीं से मैसेज भेजना शुरू कर देगा जहाँ आपने छोड़ा था.

डेमो

इस एंडपॉइंट के Python डेमो के लिए, लाइव चैट की स्ट्रीमिंग गाइड देखें.

अनुरोध

पैरामीटर

यहां दी गई टेबल में उन पैरामीटर की सूची दी गई है जिनका इस्तेमाल इस क्वेरी में किया जा सकता है. यहां दिए गए सभी पैरामीटर, क्वेरी पैरामीटर हैं.

पैरामीटर
ज़रूरी पैरामीटर
liveChatId string
liveChatId पैरामीटर, उस चैट का आईडी तय करता है जिसके मैसेज दिखाए जाएंगे. ब्रॉडकास्ट से जुड़ा लाइव चैट आईडी, liveBroadcast संसाधन की snippet.liveChatId प्रॉपर्टी में दिखाया जाता है.
part string
part पैरामीटर, liveChatMessage संसाधन के उन हिस्सों के बारे में बताता है जिन्हें एपीआई से मिले जवाब में शामिल किया जाएगा. id, snippet, और authorDetails को वैल्यू के तौर पर इस्तेमाल किया जा सकता है.
वैकल्पिक पैरामीटर
hl string
hl पैरामीटर, एपीआई को यह निर्देश देता है कि वह किसी खास ऐप्लिकेशन की भाषा के लिए, मुद्रा दिखाने वाली स्थानीय भाषा की स्ट्रिंग को वापस लाए. यह भाषा, YouTube की वेबसाइट पर काम करती है. उदाहरण के लिए, अंग्रेज़ी में मुद्रा को $1.50 के तौर पर दिखाया जाएगा, लेकिन फ़्रेंच में इसे 1,50$ के तौर पर दिखाया जाएगा.

पैरामीटर की वैल्यू, i18nLanguages.list तरीके से मिली सूची में शामिल भाषा कोड होना चाहिए.
maxResults unsigned integer

maxResults पैरामीटर, उन मैसेज की ज़्यादा से ज़्यादा संख्या तय करता है जिन्हें नतीजों के सेट में दिखाया जाना चाहिए. मान्य वैल्यू 200 से 2000 तक हैं. इसमें 200 और 2000 भी शामिल हैं. डिफ़ॉल्ट वैल्यू 500 है.

बिना कंटिन्यूएशन टोकन के किए गए शुरुआती अनुरोध में, सिर्फ़ सबसे नए इवेंट शामिल होंगे. अगर यह वैल्यू दी गई है, तो यह maxResults से कम हो सकती है.

एपीआई, उन इवेंट को वापस नहीं लाता है जो बिना कंटीन्यूएशन टोकन के किए गए शुरुआती अनुरोध से मिले इवेंट से पुराने हैं.

pageToken string
pageToken पैरामीटर, नतीजों के सेट में मौजूद उस पेज की पहचान करता है जिसे दिखाया जाना चाहिए. एपीआई रिस्पॉन्स में, nextPageToken प्रॉपर्टी से उन अन्य पेजों की पहचान होती है जिन्हें वापस पाया जा सकता है.
profileImageSize unsigned integer
profileImageSize पैरामीटर, उपयोगकर्ता की प्रोफ़ाइल फ़ोटो का वह साइज़ तय करता है जिसे नतीजों के सेट में दिखाया जाना चाहिए. इमेज स्क्वेयर हैं. डिफ़ॉल्ट वैल्यू 88 है. इसका मतलब है कि फ़ोटो 88 पिक्सल x 88 पिक्सल की होंगी. मान्य वैल्यू, 16 से 720 के बीच की होनी चाहिए. इसमें 16 और 720 भी शामिल हैं.

अनुरोध का मुख्य भाग

इस तरीके को कॉल करते समय, अनुरोध का मुख्य हिस्सा न दें.

जवाब

अगर अनुरोध सही से काम करता है, तो यह तरीका जवाब के मुख्य हिस्से में नीचे दिया गया स्ट्रक्चर दिखाता है:

{
  "kind": "youtube#liveChatMessageListResponse",
  "etag": etag,
  "nextPageToken": string,
  "pollingIntervalMillis": unsigne{d integer,
  "offlineAt": datetime,
  "pageInfo}": 
    "totalResults": integer,
    "resultsPerPage": integer
  ,
  }"items": [
    liveChatMessage Resource
  ],
  "activePollItem": liveChatMessage Resource

प्रॉपर्टी

यहां दी गई टेबल में, इस संसाधन में दिखने वाली प्रॉपर्टी के बारे में बताया गया है:

प्रॉपर्टी
kind string
इससे एपीआई संसाधन के टाइप की पहचान होती है. वैल्यू 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
एपीआई के जवाब में शामिल नतीजों की संख्या.
items[] list
मैसेज की सूची. सूची में मौजूद हर आइटम, liveChatMessage संसाधन होता है.
activePollItem object
मैसेज में मौजूद पोल का डेटा. हर पोल एक liveChatMessage संसाधन होता है. इसका टाइप pollEvent होता है, जो एक ऐक्टिव पोल को दिखाता है. हर चैट में सिर्फ़ एक पोल हो सकता है.

गड़बड़ियां

यहां दी गई टेबल में, उन गड़बड़ी के मैसेज के बारे में बताया गया है जो इस तरीके को कॉल करने पर, एपीआई दिखा सकता है. ज़्यादा जानकारी के लिए, गड़बड़ी के मैसेज का दस्तावेज़ देखें.

कनेक्ट करने के लिए 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) यह अनुरोध, पिछले अनुरोध के तुरंत बाद भेजा गया था. यह गड़बड़ी तब होती है, जब मैसेज पाने के लिए एपीआई अनुरोध, 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 यह अनुरोध, पिछले अनुरोध के तुरंत बाद भेजा गया था. यह गड़बड़ी तब होती है, जब मैसेज पाने के लिए एपीआई अनुरोध, YouTube की रीफ़्रेश रेट से ज़्यादा बार भेजे जा रहे हों. इससे बैंडविथ बेवजह खर्च होती है.