İlk kez bağlandığınızda API, son sohbet geçmişini içeren bir dizi ileti gönderir. Yeni mesajlar yayınlandıkça sunucu, bunları açık bağlantı üzerinden göndermeye devam eder.
Her sunucu yanıtındaki iletiler en eskiden en yeniye doğru sıralanır. Her yanıtta
nextPageToken de bulunur. İstemcinizin bağlantısı kesilirse yayını devam ettirmek için bu jetonu kullanabilirsiniz. Bunu yapmak için yeni bağlantı isteğinizde pageToken parametresinin değeri olarak aldığınız son nextPageToken değerini girin. API, mesaj göndermeye kaldığınız yerden devam eder.
Demo
Bu uç noktanın Python demosunu görmek için Canlı Sohbeti Yayınlama kılavuzuna bakın.
İstek
Parametreler
Aşağıdaki tabloda, bu sorgunun desteklediği parametreler listelenmiştir. Listelenen tüm parametreler sorgu parametreleridir.
| Parametreler | ||
|---|---|---|
| Gerekli parametreler | ||
liveChatId |
stringliveChatId parametresi, iletileri döndürülecek sohbetin kimliğini belirtir. Bir yayınla ilişkili canlı sohbet kimliği, liveBroadcast kaynağının snippet.liveChatId özelliğinde döndürülür. |
|
part |
stringpart parametresi, API yanıtının içereceği liveChatMessage kaynak bölümlerini belirtir. id, snippet ve authorDetails değerleri desteklenir. |
|
| İsteğe bağlı parametreler | ||
hl |
stringhl parametresi, API'ye YouTube web sitesinin desteklediği belirli bir uygulama dili için yerelleştirilmiş bir para birimi görüntüleme dizesi almasını bildirir. Örneğin, İngilizce'de para birimi $1.50 olarak gösterilirken Fransızca'da 1,50$ olarak gösterilir.Parametre değeri, i18nLanguages.list yöntemi tarafından döndürülen listede yer alan bir dil kodu olmalıdır. |
|
maxResults |
unsigned integer
Devamlılık jetonu olmadan yapılan ilk istek yalnızca en son etkinlikleri içerir. Bu değer, sağlanması durumunda API, devamlılık jetonu olmadan yapılan ilk istekte döndürülenlerden daha eski etkinlikleri almaz. |
|
pageToken |
stringpageToken parametresi, sonuç kümesinde döndürülmesi gereken belirli bir sayfayı tanımlar. Bir API yanıtında, nextPageToken özelliği, alınabilecek diğer sayfaları tanımlar. |
|
profileImageSize |
unsigned integerprofileImageSize parametresi, sonuç kümesinde döndürülmesi gereken kullanıcı profili resimlerinin boyutunu belirtir. Resimler kare olmalıdır. Varsayılan değer 88'dır. Bu durumda resimler 88 piksel x 88 piksel olur. Kabul edilebilir değerler 16 ile 720 aralığındadır (bu değerler dahil). |
|
İstek metni
Bu yöntemi çağırırken istek gövdesi sağlamayın.
Yanıt
Başarılı olursa bu yöntem, aşağıdaki yapıya sahip bir yanıt gövdesi döndürür:
{
"kind": "youtube#liveChatMessageListResponse",
"etag": etag,
"nextPageToken": string,
"pollingIntervalMillis": unsigne{d integer,
"offlineAt": datetime,
"pageInfo}":
"totalResults": integer,
"resultsPerPage": integer
,
}"items": [
liveChatMessage Resource
],
"activePollItem": liveChatMessage Resource
Özellikler
Aşağıdaki tabloda, bu kaynakta görünen özellikler tanımlanmaktadır:
| Özellikler | |
|---|---|
kind |
stringAPI kaynağının türünü tanımlar. Değer youtube#liveChatMessageListResponse olur. |
etag |
etagBu kaynağın ETag'i. |
nextPageToken |
stringSonuç kümesinde bir sonraki sayfayı almak için pageToken parametresinin değeri olarak kullanılabilecek jeton. |
offlineAt |
datetimeTemel alınan canlı yayının çevrimdışı olduğu tarih ve saat. Bu özellik yalnızca yayın zaten çevrimdışıysa bulunur. Değer, ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ) biçiminde belirtilir. |
pageInfo |
objectpageInfo nesnesi, sonuç kümesi için sayfalama bilgilerini kapsar. |
pageInfo.totalResults |
integerSonuç kümesindeki toplam sonuç sayısı. |
pageInfo.resultsPerPage |
integerAPI yanıtına dahil edilen sonuç sayısı. |
items[] |
listMesaj listesi. Listedeki her öğe bir liveChatMessage kaynağıdır. |
activePollItem |
objectİletideki anket verileri. Her anket, etkin bir anketi temsil eden pollEvent türünde bir liveChatMessage kaynağıdır. Sohbet başına yalnızca bir anket olabilir. |
Hatalar
Aşağıdaki tabloda, API'nin bu yönteme yapılan bir çağrıya yanıt olarak döndürebileceği hata mesajları tanımlanmaktadır. Daha fazla bilgi için hata mesajı belgelerini inceleyin.
Bağlanmak için gRPC kullanılırken:
| gRPC Hata Kodu | Hata ayrıntıları | Açıklama |
|---|---|---|
PERMISSION_DENIED (7) |
The caller does not have permission |
Belirtilen canlı sohbetin mesajlarını almak için gerekli izinlere sahip değilsiniz. |
INVALID_ARGUMENT (3) |
Request contains an invalid argument |
Sağlanan parametreler ayrıştırılamadı. liveChatId ve diğer parametrelerin doğru biçimde olduğundan emin olun. |
FAILED_PRECONDITION (9)* |
Precondition check failed |
LIVE_CHAT_DISABLED. Belirtilen canlı sohbet devre dışı bırakıldı. |
FAILED_PRECONDITION (9)* |
Precondition check failed |
LIVE_CHAT_ENDED. Sona eren canlı sohbetin iletilerini geri alamazsınız. |
NOT_FOUND (5) |
Requested entity was not found |
Almaya çalıştığınız canlı sohbet bulunamadı. İsteğin liveChatId parametresinin değerini kontrol ederek doğru olduğundan emin olun. |
RESOURCE_EXHAUSTED (8) |
Resource has been exhausted (e.g. check quota) |
İstek, önceki istekten çok kısa süre sonra gönderildi. Bu hata, mesajları almak için API istekleri, YouTube'un yenileme hızlarından daha sık gönderildiğinde ortaya çıkar. Bu durum, bant genişliğinin gereksiz yere harcanmasına neden olur. |
* gRPC sınırlaması nedeniyle, hata koduna göre LIVE_CHAT_DISABLED durumu ile LIVE_CHAT_ENDED durumu arasında ayrım yapmak mümkün değildir. YouTube, bu sorunu giderecek bir çözüm üzerinde aktif olarak çalışmaktadır.
Bağlanmak için web trafiği kullanırken:
| Hata Türü | Hata ayrıntıları | Açıklama |
|---|---|---|
HttpStatus.FORBIDDEN (403) |
forbidden |
Belirtilen canlı sohbetin mesajlarını almak için gerekli izinlere sahip değilsiniz. |
HttpStatus.BAD_REQUEST (400) |
Reason for invalid request, e.g. pageTokenInvalid |
Sağlanan parametreler ayrıştırılamadı. liveChatId ve diğer parametrelerin doğru biçimde olduğundan emin olun. |
HttpStatus.FORBIDDEN (403) |
liveChatDisabled |
LIVE_CHAT_DISABLED. Belirtilen canlı sohbet devre dışı bırakıldı. |
HttpStatus.FORBIDDEN (403) |
liveChatEnded |
LIVE_CHAT_ENDED. Sona eren canlı sohbetin iletilerini geri alamazsınız. |
HttpStatus.NOT_FOUND (404) |
liveChatNotFound |
Almaya çalıştığınız canlı sohbet bulunamadı. İsteğin liveChatId parametresinin değerini kontrol ederek doğru olduğundan emin olun. |
HttpStatus.FORBIDDEN (403) |
rateLimitExceeded |
İstek, önceki istekten çok kısa süre sonra gönderildi. Bu hata, mesajları almak için API istekleri, YouTube'un yenileme hızlarından daha sık gönderildiğinde ortaya çıkar. Bu durum, bant genişliğinin gereksiz yere harcanmasına neden olur. |