İ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. |