İ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 |
stringliveChatId 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 |
stringpart 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 |
stringhl 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
Devam jetonu olmadan yapılan ilk istek yalnızca en son etkinlikleri içerir. Bu değer, sağlanmışsa API, devam jetonu olmadan yapılan ilk isteğin döndürdüğü etkinliklerden daha eski etkinlikleri almaz. |
|
pageToken |
stringpageToken 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 integerprofileImageSize 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 |
stringAPI kaynağının türünü tanımlar. Değer youtube#liveChatMessageListResponse olur. |
etag |
etagBu kaynağın Etag'i. |
nextPageToken |
stringSonuç kümesindeki 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 kullanılabilir. 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 |
objectMesajdaki 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. |