LiveChatMessages: streamList

Bu yöntem, belirli bir sohbet için düşük gecikmeyle canlı sohbet mesajları almanızı sağlayan bir sunucu akışı bağlantısı oluşturur. Bu, yeni mesajları kullanılabilir oldukları anda istemcinize gönderdiği için canlı sohbet mesajlarını kullanmanın en etkili yoludur. Güncellemeler için yoklama yapmanızı gerektirmez.

İ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 string
liveChatId parametresi, mesajları 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 string
part parametresi, API yanıtının içereceği liveChatMessage kaynak parçalarını belirtir. id, snippet ve authorDetails değerleri desteklenir.
İsteğe bağlı parametreler
hl string
hl 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
maxResults parametresi, sonuç kümesinde döndürülmesi gereken maksimum ileti sayısını belirtir. Kabul edilen değerler 200 ile 2000 arasındadır (bu değerler dahil). Varsayılan değer 500'dır.
pageToken string
pageToken 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 integer
profileImageSize 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 içeriği

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": unsigned 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 string
API kaynağının türünü tanımlar. Değer youtube#liveChatMessageListResponse olur.
etag etag
Bu kaynağın ETag'i.
nextPageToken string
Sonuç kümesinde bir sonraki sayfayı almak için pageToken parametresinin değeri olarak kullanılabilecek jeton.
offlineAt datetime
Temel 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 object
pageInfo nesnesi, sonuç kümesi için sayfa oluşturma bilgilerini kapsar.
pageInfo.totalResults integer
Sonuç kümesindeki toplam sonuç sayısı.
pageInfo.resultsPerPage integer
API yanıtına dahil edilen sonuç sayısı.
items[] list
Mesaj 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ı. Doğru olduğundan emin olmak için isteğin liveChatId parametresinin değerini kontrol edin.
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 gönderilen API istekleri YouTube'un yenileme hızlarından daha sık olduğunda 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ğini 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ı. Doğru olduğundan emin olmak için isteğin liveChatId parametresinin değerini kontrol edin.
HttpStatus.FORBIDDEN (403) rateLimitExceeded İstek, önceki istekten çok kısa süre sonra gönderildi. Bu hata, mesajları almak için gönderilen API istekleri YouTube'un yenileme hızlarından daha sık olduğunda ortaya çıkar. Bu durum, bant genişliğinin gereksiz yere harcanmasına neden olur.