LiveChatMessages: streamList

Metode ini membuat koneksi streaming server yang memungkinkan Anda menerima pesan live chat untuk chat tertentu dengan latensi rendah. Cara ini adalah cara paling efisien untuk menggunakan pesan chat langsung, karena pesan baru akan dikirim ke klien Anda segera setelah tersedia, dan Anda tidak perlu melakukan polling untuk mendapatkan update.

Saat Anda pertama kali terhubung, API akan mengirimkan serangkaian pesan yang berisi histori chat terbaru. Saat pesan baru diposting, server akan terus mengirimkannya melalui koneksi yang terbuka.

Pesan dalam setiap respons server diurutkan dari yang terlama hingga terbaru. Setiap respons juga menyertakan nextPageToken. Jika klien Anda terputus, Anda dapat menggunakan token ini untuk melanjutkan streaming. Untuk melakukannya, berikan nextPageToken terakhir yang Anda terima sebagai nilai untuk parameter pageToken dalam permintaan koneksi baru Anda. Kemudian, API akan melanjutkan pengiriman pesan dari titik terakhir pengiriman sebelumnya.

Demo

Untuk demo Python dari endpoint ini, lihat panduan Streaming Live Chat.

Permintaan

Parameter

Tabel berikut mencantumkan parameter yang didukung kueri ini. Semua parameter yang tercantum adalah parameter kueri.

Parameter
Parameter yang diperlukan
liveChatId string
Parameter liveChatId menentukan ID chat yang pesannya akan ditampilkan. ID live chat yang terkait dengan siaran ditampilkan di properti snippet.liveChatId resource liveBroadcast.
part string
Parameter part menentukan bagian resource liveChatMessage yang akan disertakan dalam respons API. Nilai yang didukung adalah id, snippet, dan authorDetails.
Parameter opsional
hl string
Parameter hl menginstruksikan API untuk mengambil string tampilan mata uang yang dilokalkan untuk bahasa aplikasi tertentu yang didukung situs YouTube. Misalnya, dalam bahasa Inggris, mata uang akan ditampilkan sebagai $1.50, tetapi dalam bahasa Prancis, mata uang akan ditampilkan sebagai 1,50$.

Nilai parameter harus berupa kode bahasa yang disertakan dalam daftar yang ditampilkan oleh metode i18nLanguages.list.
maxResults unsigned integer
Parameter maxResults menentukan jumlah maksimum pesan yang harus ditampilkan dalam kumpulan hasil. Nilai yang dapat diterima adalah 200 hingga 2000, inklusif. Nilai defaultnya adalah 500.
pageToken string
Parameter pageToken mengidentifikasi halaman tertentu dalam set hasil yang harus ditampilkan. Dalam respons API, properti nextPageToken mengidentifikasi halaman lain yang dapat diambil.
profileImageSize unsigned integer
Parameter profileImageSize menentukan ukuran foto profil pengguna yang harus ditampilkan dalam kumpulan hasil. Gambar berbentuk persegi. Nilai defaultnya adalah 88, yang berarti gambar akan berukuran 88 px x 88 px. Nilai yang dapat diterima berada dalam rentang 16 hingga 720, inklusif.

Isi permintaan

Jangan berikan isi permintaan saat memanggil metode ini.

Respons

Jika berhasil, metode ini akan menampilkan isi respons dengan struktur berikut:

{
  "kind": "youtube#liveChatMessageListResponse",
  "etag": etag,
  "nextPageToken": string,
  "pollingIntervalMillis": unsigned integer,
  "offlineAt": datetime,
  "pageInfo": {
    "totalResults": integer,
    "resultsPerPage": integer
  },
  "items": [
    liveChatMessage Resource
  ],
  "activePollItem": liveChatMessage Resource
}

Properti

Tabel berikut menentukan properti yang muncul di resource ini:

Properti
kind string
Mengidentifikasi jenis resource API. Nilainya adalah youtube#liveChatMessageListResponse.
etag etag
ETag resource ini.
nextPageToken string
Token yang dapat digunakan sebagai nilai parameter pageToken untuk mengambil halaman berikutnya dalam set hasil.
offlineAt datetime
Tanggal dan waktu saat livestream yang mendasarinya menjadi offline. Properti ini hanya ada jika streaming sudah offline. Nilai ditentukan dalam format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
pageInfo object
Objek pageInfo merangkum informasi penomoran halaman untuk set hasil.
pageInfo.totalResults integer
Jumlah total hasil dalam kumpulan hasil.
pageInfo.resultsPerPage integer
Jumlah hasil yang disertakan dalam respons API.
items[] list
Daftar pesan. Setiap item dalam daftar adalah resource liveChatMessage.
activePollItem object
Data polling dalam pesan. Setiap polling adalah resource liveChatMessage dengan jenis pollEvent, yang mewakili polling aktif. Hanya boleh ada satu polling per percakapan.

Error

Tabel berikut mengidentifikasi pesan error yang dapat ditampilkan API sebagai respons terhadap panggilan ke metode ini. Lihat dokumentasi pesan error untuk mengetahui detail selengkapnya.

Saat menggunakan gRPC untuk terhubung:

Kode Error gRPC Detail error Deskripsi
PERMISSION_DENIED (7) The caller does not have permission Anda tidak memiliki izin yang diperlukan untuk mengambil pesan untuk live chat yang ditentukan.
INVALID_ARGUMENT (3) Request contains an invalid argument Gagal mengurai parameter yang diberikan. Pastikan liveChatId dan parameter lainnya dalam format yang benar.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_DISABLED. Live chat yang ditentukan dinonaktifkan.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_ENDED. Anda tidak dapat mengambil pesan untuk percakapan live yang telah berakhir.
NOT_FOUND (5) Requested entity was not found Live chat yang ingin Anda ambil tidak dapat ditemukan. Periksa nilai parameter liveChatId permintaan untuk memastikan nilainya sudah benar.
RESOURCE_EXHAUSTED (8) Resource has been exhausted (e.g. check quota) Permintaan dikirim terlalu cepat setelah permintaan sebelumnya. Error ini terjadi saat permintaan API untuk mengambil pesan dikirim lebih sering daripada kecepatan refresh YouTube, yang membuang bandwidth secara tidak perlu.

* Karena batasan gRPC, tidak mungkin membedakan berdasarkan kode error antara kasus LIVE_CHAT_DISABLED dan kasus LIVE_CHAT_ENDED. YouTube sedang berupaya secara aktif untuk menemukan solusi guna mengatasi masalah ini.

Saat menggunakan traffic web untuk menghubungkan:

Jenis Kesalahan Detail error Deskripsi
HttpStatus.FORBIDDEN (403) forbidden Anda tidak memiliki izin yang diperlukan untuk mengambil pesan untuk live chat yang ditentukan.
HttpStatus.BAD_REQUEST (400) Reason for invalid request, e.g. pageTokenInvalid Gagal mengurai parameter yang diberikan. Pastikan liveChatId dan parameter lainnya dalam format yang benar.
HttpStatus.FORBIDDEN (403) liveChatDisabled LIVE_CHAT_DISABLED. Live chat yang ditentukan dinonaktifkan.
HttpStatus.FORBIDDEN (403) liveChatEnded LIVE_CHAT_ENDED. Anda tidak dapat mengambil pesan untuk percakapan live yang telah berakhir.
HttpStatus.NOT_FOUND (404) liveChatNotFound Live chat yang ingin Anda ambil tidak dapat ditemukan. Periksa nilai parameter liveChatId permintaan untuk memastikan nilainya sudah benar.
HttpStatus.FORBIDDEN (403) rateLimitExceeded Permintaan dikirim terlalu cepat setelah permintaan sebelumnya. Error ini terjadi saat permintaan API untuk mengambil pesan dikirim lebih sering daripada kecepatan refresh YouTube, yang membuang bandwidth secara tidak perlu.