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ı güncellemeler için yoklama yapmanızı gerektirmek yerine kullanılabilir oldukları anda istemcinize gönderdiği için canlı sohbet mesajlarını kullanmanın en verimli yoludur.

İlk kez bağlandığınızda API, son sohbet geçmişini içeren bir dizi mesaj gönderir. Yeni mesajlar yayınlandıkça sunucu, bunları açık bağlantı üzerinden göndermeye devam eder.

Her sunucu yanıtındaki mesajlar en eskiden en yeniye doğru sıralanır. Her yanıtta bir nextPageToken da bulunur. İstemcinizin bağlantısı kesilirse yayını devam ettirmek için bu jetonu kullanabilirsiniz. Bunu yapmak için yeni bağlantı isteğinizdeki pageToken parametresinin değeri olarak aldığınız son nextPageToken değerini girin. API, mesaj göndermeye kaldığınız yerden devam eder.

Kota etkisi: Bu yönteme yapılan bir çağrının kota maliyeti 5 birimdir.

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 mülkünde döndürülür.
part string
part parametresi, API yanıtının içereceği liveChatMessage kaynak parçalarını belirtir. Desteklenen değerler id, snippet ve authorDetails'dir.
İsteğe bağlı parametreler
hl string
hl parametresi, API'ye YouTube web sitesinin desteklediği belirli bir uygulama dili için yerelleştirilmiş para birimi görüntüleme dizesi alma talimatı verir. Örneğin, para birimi İngilizcede $1.50, Fransızcada ise 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 mesaj sayısını belirtir. Kabul edilen değerler 200 ile 2000 arasındadır (bu değerler dahil). Varsayılan değer: 500.

Devam jetonu olmadan yapılan ilk istek yalnızca en son etkinlikleri içerir. Bu değer, sağlanmışsa maxResults değerinden küçük olabilir.

API, devam jetonu olmadan yapılan ilk isteğin döndürdüğü etkinliklerden daha eski etkinlikleri almaz.

pageToken string
pageToken parametresi, sonuç kümesinde döndürülmesi gereken belirli bir sayfayı tanımlar. 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ı profil resimlerinin boyutunu belirtir. Resimler kare olmalıdır. Varsayılan değer 88'dir. Bu, resimlerin 88 piksel x 88 piksel olacağı anlamına gelir. Kabul edilebilir değerler 16 ile 720 arası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": 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ümesindeki 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 kullanılabilir. Değer, ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) biçiminde belirtilir.
pageInfo object
pageInfo nesnesi, sonuç kümesi için sayfalama 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
Mesajdaki anket verileri. Her anket, etkin bir anketi temsil eden pollEvent türünde bir liveChatMessage kaynağıdır. Her sohbette 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ı belgelerine bakın.

Bağlanmak için gRPC kullanırken:

gRPC Hata Kodu Hata ayrıntısı Açıklama
PERMISSION_DENIED (7) The caller does not have permission Belirtilen canlı sohbetin iletilerini 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ılmış.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_ENDED. Sona eren canlı sohbetin mesajlarını 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 gönderilen API istekleri YouTube'un yenileme hızından daha sık gönderildiğinde ortaya çıkar ve bant genişliğinin gereksiz yere harcanmasına neden olur.

* gRPC sınırlaması nedeniyle, hata koduna göre LIVE_CHAT_DISABLED ve LIVE_CHAT_ENDED durumları arasında ayrım yapmak mümkün değildir. YouTube, bu sorunu çözmek için aktif olarak çalışmaktadır.

Bağlantı için web trafiğini kullanırken:

Hata Türü Hata ayrıntısı Açıklama
HttpStatus.FORBIDDEN (403) forbidden Belirtilen canlı sohbetin iletilerini 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 mesajlarını 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 gönderilen API istekleri YouTube'un yenileme hızından daha sık gönderildiğinde ortaya çıkar ve bant genişliğinin gereksiz yere harcanmasına neden olur.