LiveChatMessages: streamList

Cette méthode établit une connexion de streaming côté 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 des messages de chat en direct, car elle envoie de nouveaux messages à votre client dès qu'ils sont disponibles, au lieu de vous obliger à interroger les mises à jour.

Lors de votre première connexion, l'API envoie une série de messages contenant l'historique des discussions récent. Lorsque 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 requête de connexion. L'API reprendra ensuite l'envoi de messages à partir de l'endroit où vous vous êtes arrêté.

Impact sur le quota : un appel à cette méthode coûte 5 unités de quota.

Démo

Pour obtenir une démonstration Python de cet point de terminaison, consultez le guide sur le streaming de chat en direct.

Requête

Paramètres

Le tableau suivant répertorie les paramètres compatibles avec 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 demande à 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.

La requête initiale effectuée sans jeton de continuation ne contient que les événements les plus récents. Cette valeur peut être inférieure à maxResults, si elle est fournie.

L'API ne récupère pas les événements antérieurs à ceux renvoyés par la requête initiale effectuée sans jeton de continuation.

pageToken string
Le paramètre pageToken identifie une page spécifique de l'ensemble de résultats à renvoyer. Dans une réponse de l'API, la propriété nextPageToken identifie d'autres pages qui pourraient être récupérées.
profileImageSize unsigned integer
Le paramètre profileImageSize spécifie la taille des photos de profil utilisateur à renvoyer 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 acceptées 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
L'Etag de cette ressource.
nextPageToken string
Le jeton qui peut être utilisé comme valeur du paramètre pageToken pour récupérer la page suivante dans l'ensemble de résultats.
offlineAt datetime
Date et heure auxquelles la diffusion en direct sous-jacente a été mise hors ligne. Cette propriété n'est présente que si le flux est déjà hors ligne. 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 de 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 chat.

Erreurs

Le tableau suivant identifie les messages d'erreur que l'API peut renvoyer en réponse à un appel à 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 requises 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 format correct.
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 Le chat en direct que vous essayez de récupérer est introuvable. Vérifiez la valeur du paramètre liveChatId de la requête pour vous assurer qu'elle 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 requête précédente. Cette erreur se produit lorsque les requêtes API visant à récupérer des messages sont envoyées plus fréquemment que les fréquences d'actualisation de YouTube, ce qui gaspille inutilement de la bande passante.

* En raison d'une limitation de gRPC, il n'est pas possible de distinguer, en fonction du code d'erreur, un cas LIVE_CHAT_DISABLED d'un cas LIVE_CHAT_ENDED. YouTube travaille activement sur une solution pour résoudre ce problème.

Lorsque vous utilisez le trafic Web pour vous connecter :

Type d'erreur Détails de l'erreur Description
HttpStatus.FORBIDDEN (403) forbidden Vous ne disposez pas des autorisations requises 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 format correct.
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 Le chat en direct que vous essayez de récupérer est introuvable. Vérifiez la valeur du paramètre liveChatId de la requête pour vous assurer qu'elle est correcte.
HttpStatus.FORBIDDEN (403) rateLimitExceeded La requête a été envoyée trop rapidement après la requête précédente. Cette erreur se produit lorsque les requêtes API visant à récupérer des messages sont envoyées plus fréquemment que les fréquences d'actualisation de YouTube, ce qui gaspille inutilement de la bande passante.