LiveChatMessages: streamList

Cette méthode établit une connexion de streaming serveur qui vous permet de recevoir des messages de chat en direct pour un chat spécifique avec une faible latence. Il s'agit du moyen le plus efficace de consommer les messages du chat en direct, car il envoie les nouveaux messages à votre client dès qu'ils sont disponibles, au lieu de vous obliger à interroger les mises à jour.

Lorsque vous vous connectez pour la première fois, l'API envoie une série de messages contenant l'historique récent des discussions. À mesure que de nouveaux messages sont publiés, le serveur continue de les envoyer via la connexion ouverte.

Les messages de chaque réponse du serveur sont classés du plus ancien au plus récent. Chaque réponse inclut également un nextPageToken. Si votre client se déconnecte, vous pouvez utiliser ce jeton pour reprendre le flux. Pour ce faire, indiquez le dernier nextPageToken que vous avez reçu comme valeur du paramètre pageToken dans votre nouvelle demande de connexion. L'API reprendra ensuite l'envoi des messages là où vous vous étiez arrêté.

Démo

Pour obtenir une démonstration Python de ce point de terminaison, consultez le guide Streaming Live Chat.

Requête

Paramètres

Le tableau suivant répertorie les paramètres acceptés par cette requête. Tous les paramètres listés sont des paramètres de requête.

Paramètres
Paramètres obligatoires
liveChatId string
Le paramètre liveChatId spécifie l'ID du chat dont les messages seront renvoyés. L'ID du chat en direct associé à une diffusion est renvoyé dans la propriété snippet.liveChatId de la ressource liveBroadcast.
part string
Le paramètre part spécifie les parties de la ressource liveChatMessage que la réponse de l'API inclura. Les valeurs acceptées sont id, snippet et authorDetails.
Paramètres facultatifs
hl string
Le paramètre hl indique à l'API de récupérer une chaîne d'affichage de devise localisée pour une langue d'application spécifique compatible avec le site Web YouTube. Par exemple, en anglais, la devise s'affiche sous la forme $1.50, mais en français, elle s'affiche sous la forme 1,50$.

La valeur du paramètre doit être un code de langue inclus dans la liste renvoyée par la méthode i18nLanguages.list.
maxResults unsigned integer
Le paramètre maxResults spécifie le nombre maximal de messages à renvoyer dans l'ensemble de résultats. Les valeurs acceptées sont comprises entre 200 et 2000 (inclus). La valeur par défaut est 500.
pageToken string
Le paramètre pageToken identifie une page spécifique de l'ensemble de résultats à renvoyer. Dans une réponse d'API, la propriété nextPageToken identifie les autres pages qui peuvent être récupérées.
profileImageSize unsigned integer
Le paramètre profileImageSize spécifie la taille des photos de profil des utilisateurs qui doivent être renvoyées dans l'ensemble de résultats. Les images sont carrées. La valeur par défaut est 88, ce qui signifie que les images seront de 88 x 88 pixels. Les valeurs acceptables sont comprises entre 16 et 720, inclus.

Corps de la requête

Ne fournissez pas de corps de requête lorsque vous appelez cette méthode.

Réponse

Si la requête aboutit, cette méthode renvoie un corps de réponse présentant la structure suivante :

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

Propriétés

Le tableau suivant définit les propriétés qui apparaissent dans cette ressource :

Propriétés
kind string
Identifie le type de ressource de l'API. La valeur sera youtube#liveChatMessageListResponse.
etag etag
Etag de cette ressource.
nextPageToken string
Jeton pouvant être utilisé comme valeur du paramètre pageToken pour récupérer la page suivante de l'ensemble de résultats.
offlineAt datetime
Date et heure auxquelles la diffusion en direct sous-jacente a été interrompue. Cette propriété n'est présente que si le flux est déjà hors connexion. La valeur est spécifiée au format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
pageInfo object
L'objet pageInfo encapsule les informations de pagination pour l'ensemble de résultats.
pageInfo.totalResults integer
Nombre total de résultats dans l'ensemble de résultats.
pageInfo.resultsPerPage integer
Nombre de résultats inclus dans la réponse de l'API.
items[] list
Liste de messages. Chaque élément de la liste est une ressource liveChatMessage.
activePollItem object
Données du sondage dans le message. Chaque sondage est une ressource liveChatMessage de type pollEvent, qui représente un sondage actif. Il ne peut y avoir qu'un seul sondage par discussion.

Erreurs

Le tableau suivant identifie les messages d'erreur que l'API peut renvoyer en réponse à un appel de cette méthode. Pour en savoir plus, consultez la documentation sur les messages d'erreur.

Lorsque vous utilisez gRPC pour vous connecter :

Code d'erreur gRPC Détails de l'erreur Description
PERMISSION_DENIED (7) The caller does not have permission Vous ne disposez pas des autorisations nécessaires pour récupérer les messages du chat en direct spécifié.
INVALID_ARGUMENT (3) Request contains an invalid argument Échec de l'analyse des paramètres fournis. Assurez-vous que le liveChatId et les autres paramètres sont au bon format.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_DISABLED. Le chat en direct spécifié est désactivé.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_ENDED. Vous ne pouvez pas récupérer les messages du chat en direct terminé.
NOT_FOUND (5) Requested entity was not found Impossible de trouver le chat en direct que vous essayez de récupérer. Vérifiez que la valeur du paramètre liveChatId de la requête est correcte.
RESOURCE_EXHAUSTED (8) Resource has been exhausted (e.g. check quota) La requête a été envoyée trop rapidement après la précédente. Cette erreur se produit lorsque des requêtes API sont envoyées pour récupérer des messages plus fréquemment que les taux d'actualisation de YouTube, ce qui gaspille inutilement de la bande passante.

* En raison d'une limitation gRPC, il n'est pas possible de faire la distinction entre un cas LIVE_CHAT_DISABLED et un cas LIVE_CHAT_ENDED en fonction du code d'erreur. YouTube travaille activement à la résolution de ce problème.

Lorsque vous utilisez le trafic Web pour établir une connexion :

Type d'erreur Détails de l'erreur Description
HttpStatus.FORBIDDEN (403) forbidden Vous ne disposez pas des autorisations nécessaires pour récupérer les messages du chat en direct spécifié.
HttpStatus.BAD_REQUEST (400) Reason for invalid request, e.g. pageTokenInvalid Échec de l'analyse des paramètres fournis. Assurez-vous que le liveChatId et les autres paramètres sont au bon format.
HttpStatus.FORBIDDEN (403) liveChatDisabled LIVE_CHAT_DISABLED. Le chat en direct spécifié est désactivé.
HttpStatus.FORBIDDEN (403) liveChatEnded LIVE_CHAT_ENDED. Vous ne pouvez pas récupérer les messages du chat en direct terminé.
HttpStatus.NOT_FOUND (404) liveChatNotFound Impossible de trouver le chat en direct que vous essayez de récupérer. Vérifiez que la valeur du paramètre liveChatId de la requête est correcte.
HttpStatus.FORBIDDEN (403) rateLimitExceeded La requête a été envoyée trop rapidement après la précédente. Cette erreur se produit lorsque des requêtes API sont envoyées pour récupérer des messages plus fréquemment que les taux d'actualisation de YouTube, ce qui gaspille inutilement de la bande passante.