Aller au contenu
twitch.apiv2.0

Référence / Groupes de l'API

twitch.extensions

Extensions : configuration, secrets, messages PubSub et de chat, produits Bits.

Toutes les méthodes de twitch.extensions, avec leurs paramètres, ce qu’elles renvoient et le jeton nécessaire.

twitch.extensions.configuration(params, options?): Promise<ExtensionConfigurationSegment[]>

Lit un ou plusieurs segments de configuration d’une extension, dans l’ordre où vous les avez demandés. Limité à 20 lectures par minute pour chaque segment.

Jeton : JWT d’extension signé, passé avec l’option de requête token.

NomTypeDescription
extension_id requisstringIdentifiant de l’extension à laquelle appartiennent les segments.
segment requisExtensionConfigurationSegmentName | readonly ExtensionConfigurationSegmentName[]Segments à lire. Les doublons sont ignorés.
broadcaster_idstringDiffuseur qui a installé l’extension. Obligatoire pour les segments du diffuseur et du développeur, à omettre quand vous ne lisez que le segment global.

options : Options de requête pour cet appel : as, token, signal, timeout, retries.

Promise<ExtensionConfigurationSegment[]>

Champs de ExtensionConfigurationSegment
NomTypeDescription
segmentExtensionConfigurationSegmentNameLe segment dont il s’agit.
broadcaster_idstringIdentifiant du diffuseur auquel appartient le segment. Absent du segment global.
contentstringContenu du segment : du texte brut, ou du JSON encodé dans une chaîne de caractères.
versionstringVersion des données stockées, telle que l’extension l’a choisie.
const [global] = await twitch.extensions.configuration(
{ extension_id, segment: "global" },
{ token: jwt },
);

Référence Twitch

twitch.extensions.setConfiguration(params, options?): Promise<void>

Écrit un segment de configuration. Les copies de l’extension déjà en cours d’exécution sur une chaîne ne reçoivent pas le nouveau contenu. Limité à 20 écritures par minute.

Jeton : JWT d’extension signé, passé avec l’option de requête token.

NomTypeDescription
extension_id requisstringIdentifiant de l’extension à mettre à jour.
segment requisExtensionConfigurationSegmentNameSegment à écrire.
broadcaster_idstringDiffuseur qui a installé l’extension. Uniquement pour les segments du diffuseur et du développeur.
contentstringNouveau contenu, 5 ko au plus : du texte brut, ou du JSON encodé dans une chaîne de caractères.
versionstringVersion des données à écrire. Sans elle, la plus récente est remplacée.

options : Options de requête pour cet appel : as, token, signal, timeout, retries.

Promise<void>

await twitch.extensions.setConfiguration(
{ extension_id, segment: "global", version: "0.0.1", content: JSON.stringify({ theme: "dark" }) },
{ token: jwt },
);

Référence Twitch

twitch.extensions.setRequiredConfiguration(params, options?): Promise<void>

Définit, pour une chaîne, la chaîne de caractères de configuration requise, dans le cas des extensions que le diffuseur doit configurer avant de pouvoir les activer.

Jeton : JWT d’extension signé, passé avec l’option de requête token.

NomTypeDescription
broadcaster_id requisstringDiffuseur qui a installé l’extension sur sa chaîne.
extension_id requisstringIdentifiant de l’extension à mettre à jour.
extension_version requisstringVersion de l’extension à mettre à jour.
required_configuration requisstringLa chaîne de caractères qui marque la chaîne comme configurée pour cette version.

options : Options de requête pour cet appel : as, token, signal, timeout, retries.

Promise<void>

await twitch.extensions.setRequiredConfiguration(
{ broadcaster_id: "141981764", extension_id, extension_version: "0.0.1", required_configuration: "v1" },
{ token: jwt },
);

Référence Twitch

twitch.extensions.sendPubSub(params, options?): Promise<void>

Envoie un message aux copies d’une extension en cours d’exécution : sur une chaîne, sur toutes les chaînes, ou pour un seul spectateur. Limité à 100 messages par minute pour chaque chaîne.

Jeton : JWT d’extension signé, passé avec l’option de requête token. Ses revendications channel_id et pubsub_perms doivent autoriser les destinataires.

NomTypeDescription
target requisreadonly ExtensionPubSubTarget[]Destinataires. "broadcast" et "global" ne peuvent pas être combinés.
broadcaster_idstringChaîne à laquelle envoyer le message. À omettre quand is_global_broadcast vaut true.
is_global_broadcastbooleanEnvoie le message à toutes les chaînes sur lesquelles l’extension est active. target doit alors valoir ["global"]. Twitch prend false par défaut.
message requisstringLe message, 5 ko au plus : du texte brut, ou du JSON encodé dans une chaîne de caractères.

options : Options de requête pour cet appel : as, token, signal, timeout, retries.

Promise<void>

await twitch.extensions.sendPubSub(
{ broadcaster_id: "141981764", target: ["broadcast"], message: JSON.stringify({ round: 2 }) },
{ token: jwt },
);

Référence Twitch

twitch.extensions.liveChannels(params, options?): Paginator<ExtensionLiveChannel>

Liste les chaînes en direct qui ont installé ou activé une extension. Une chaîne peut mettre quelques minutes à apparaître ou à disparaître.

Jeton : application ou utilisateur.

NomTypeDescription
extension_id requisstringIdentifiant de l’extension à rechercher.
firstnumberÉléments par page, de 1 à 100. Twitch en renvoie 20 par défaut.
afterstringCurseur de la page suivante.

options : Options de requête pour cet appel : as, token, signal, timeout, retries.

Paginator<ExtensionLiveChannel>

Champs de ExtensionLiveChannel
NomTypeDescription
broadcaster_idstringIdentifiant du diffuseur.
broadcaster_namestringNom d’affichage du diffuseur.
game_namestringNom de la catégorie en cours de diffusion.
game_idstringIdentifiant de la catégorie en cours de diffusion.
titlestringTitre du stream. Une chaîne vide quand aucun n’est défini.
for await (const channel of twitch.extensions.liveChannels({ extension_id })) {
console.log(channel.broadcaster_name, channel.title);
}

Référence Twitch

twitch.extensions.secrets(params, options?): Promise<ExtensionSecrets>

Renvoie les secrets partagés d’une extension.

Jeton : JWT d’extension signé, passé avec l’option de requête token.

NomTypeDescription
extension_id requisstringIdentifiant de l’extension dont on lit les secrets.

options : Options de requête pour cet appel : as, token, signal, timeout, retries.

Promise<ExtensionSecrets>

Champs de ExtensionSecrets
NomTypeDescription
format_versionnumberVersion du format de cet objet.
secretsExtensionSecret[]Les secrets. Plusieurs coexistent pendant le déploiement d’un nouveau.
const { secrets } = await twitch.extensions.secrets({ extension_id }, { token: jwt });

Référence Twitch

twitch.extensions.createSecret(params, options?): Promise<ExtensionSecrets>

Crée un nouveau secret partagé. Les secrets en cours sont retirés dès que le nouveau devient actif : n’appelez donc cette méthode que lorsque vous êtes prêt à basculer.

Jeton : JWT d’extension signé, passé avec l’option de requête token.

NomTypeDescription
extension_id requisstringIdentifiant de l’extension qui reçoit le nouveau secret.
delaynumberNombre de secondes à attendre avant que le nouveau secret devienne actif, pour laisser aux copies de l’extension en cours d’exécution le temps de basculer. 300 au moins, ce qui est aussi la valeur par défaut.

options : Options de requête pour cet appel : as, token, signal, timeout, retries.

Promise<ExtensionSecrets>

Champs de ExtensionSecrets
NomTypeDescription
format_versionnumberVersion du format de cet objet.
secretsExtensionSecret[]Les secrets. Plusieurs coexistent pendant le déploiement d’un nouveau.
const { secrets } = await twitch.extensions.createSecret({ extension_id, delay: 600 }, { token: jwt });

Référence Twitch

twitch.extensions.sendChatMessage(params, options?): Promise<void>

Publie un message dans le chat d’une chaîne sous le nom de l’extension. L’extension doit disposer de la capacité de chat. Limité à 12 messages par minute pour chaque chaîne.

Jeton : JWT d’extension signé, passé avec l’option de requête token.

NomTypeDescription
broadcaster_id requisstringDiffuseur chez qui l’extension est active, et dont le chat reçoit le message.
text requisstringLe message, 280 caractères au plus.
extension_id requisstringIdentifiant de l’extension qui envoie le message.
extension_version requisstringVersion de l’extension.

options : Options de requête pour cet appel : as, token, signal, timeout, retries.

Promise<void>

await twitch.extensions.sendChatMessage(
{ broadcaster_id: "141981764", text: "The poll is open.", extension_id, extension_version: "0.0.9" },
{ token: jwt },
);

Référence Twitch

twitch.extensions.get(params, options?): Promise<ExtensionDetails | null>

Renvoie la description d’une extension, publiée ou non. Renvoie null quand aucune version n’est indiquée et que l’extension n’a jamais été publiée.

Jeton : JWT d’extension signé, passé avec l’option de requête token.

NomTypeDescription
extension_id requisstringIdentifiant de l’extension à récupérer.
extension_versionstringVersion à récupérer. Par défaut, la dernière publiée : il faut donc l’indiquer pour une extension qui n’a jamais été publiée.

options : Options de requête pour cet appel : as, token, signal, timeout, retries.

Promise<ExtensionDetails \| null>

Champs de ExtensionDetails
NomTypeDescription
author_namestringNom de l’utilisateur ou de l’organisation à qui appartient l’extension.
bits_enabledbooleanIndique si l’extension a des fonctionnalités qui utilisent les Bits.
can_installbooleanIndique si un utilisateur peut l’installer. Généralement false tant qu’elle est testée avec une liste d’autorisation.
configuration_location"none" | "hosted" | "custom"Emplacement de la configuration : "hosted" chez Twitch, "custom" sur le backend de l’extension, ou "none" quand il n’y a rien à configurer.
descriptionstringDescription longue, affichée sur la page de détails.
eula_tos_urlstringURL des conditions d’utilisation.
has_chat_supportbooleanIndique si l’extension peut écrire dans le chat des chaînes sur lesquelles elle est installée.
icon_urlstringURL de l’icône par défaut.
icon_urlsRecord<string, string>URL de l’icône en plusieurs tailles, indexées par taille, par exemple "24x24".
idstringIdentifiant de l’extension.
namestringNom de l’extension.
privacy_policy_urlstringURL de la politique de confidentialité.
request_identity_linkbooleanIndique si l’extension demande aux spectateurs de partager leur identité Twitch.
screenshot_urlsstring[]URL des captures d’écran affichées dans la place de marché.
stateExtensionStateÉtape où se trouve l’extension dans son cycle de validation et de publication.
subscriptions_support_level"none" | "optional"Indique si l’extension peut voir le niveau d’abonnement du spectateur sur la chaîne.
summarystringDescription courte présentée aux streamers dans l’Extension Manager.
support_emailstringAdresse e-mail à laquelle les utilisateurs peuvent écrire pour obtenir de l’aide.
versionstringNuméro de version de l’extension.
viewer_summarystringDescription courte présentée aux spectateurs sur la chaîne.
viewsExtensionViewsFaçon dont l’extension s’affiche à chacun des emplacements qu’elle prend en charge.
allowlisted_config_urlsstring[]URL autorisées à afficher la page de configuration.
allowlisted_panel_urlsstring[]URL autorisées à afficher le panneau.
const extension = await twitch.extensions.get({ extension_id, extension_version: "0.0.9" }, { token: jwt });

Référence Twitch

twitch.extensions.released(params, options?): Promise<ExtensionDetails>

Renvoie la description d’une extension publiée. Échoue avec une erreur 404 quand l’extension n’existe pas ou n’est pas publiée.

Jeton : application ou utilisateur.

NomTypeDescription
extension_id requisstringIdentifiant de l’extension à récupérer.
extension_versionstringVersion à récupérer. Par défaut, la plus récente.

options : Options de requête pour cet appel : as, token, signal, timeout, retries.

Promise<ExtensionDetails>

Champs de ExtensionDetails
NomTypeDescription
author_namestringNom de l’utilisateur ou de l’organisation à qui appartient l’extension.
bits_enabledbooleanIndique si l’extension a des fonctionnalités qui utilisent les Bits.
can_installbooleanIndique si un utilisateur peut l’installer. Généralement false tant qu’elle est testée avec une liste d’autorisation.
configuration_location"none" | "hosted" | "custom"Emplacement de la configuration : "hosted" chez Twitch, "custom" sur le backend de l’extension, ou "none" quand il n’y a rien à configurer.
descriptionstringDescription longue, affichée sur la page de détails.
eula_tos_urlstringURL des conditions d’utilisation.
has_chat_supportbooleanIndique si l’extension peut écrire dans le chat des chaînes sur lesquelles elle est installée.
icon_urlstringURL de l’icône par défaut.
icon_urlsRecord<string, string>URL de l’icône en plusieurs tailles, indexées par taille, par exemple "24x24".
idstringIdentifiant de l’extension.
namestringNom de l’extension.
privacy_policy_urlstringURL de la politique de confidentialité.
request_identity_linkbooleanIndique si l’extension demande aux spectateurs de partager leur identité Twitch.
screenshot_urlsstring[]URL des captures d’écran affichées dans la place de marché.
stateExtensionStateÉtape où se trouve l’extension dans son cycle de validation et de publication.
subscriptions_support_level"none" | "optional"Indique si l’extension peut voir le niveau d’abonnement du spectateur sur la chaîne.
summarystringDescription courte présentée aux streamers dans l’Extension Manager.
support_emailstringAdresse e-mail à laquelle les utilisateurs peuvent écrire pour obtenir de l’aide.
versionstringNuméro de version de l’extension.
viewer_summarystringDescription courte présentée aux spectateurs sur la chaîne.
viewsExtensionViewsFaçon dont l’extension s’affiche à chacun des emplacements qu’elle prend en charge.
allowlisted_config_urlsstring[]URL autorisées à afficher la page de configuration.
allowlisted_panel_urlsstring[]URL autorisées à afficher le panneau.
const extension = await twitch.extensions.released({ extension_id: "pgn0bjv51epi7eaekt53tovjnc82qo" });
console.log(extension.name, extension.version);

Référence Twitch

twitch.extensions.bitsProducts(params?, options?): Promise<ExtensionBitsProduct[]>

Liste les produits Bits de l’extension à laquelle appartient votre identifiant client, triés par SKU.

Jeton : application, émis pour l’identifiant client de l’extension.

NomTypeDescription
should_include_allbooleanListe aussi les produits désactivés et expirés. Twitch prend false par défaut.

options : Options de requête pour cet appel : as, token, signal, timeout, retries.

Promise<ExtensionBitsProduct[]>

Champs de ExtensionBitsProduct
NomTypeDescription
skustringSKU du produit, unique au sein de l’extension.
costExtensionBitsProductCostPrix du produit.
in_developmentbooleanIndique si le produit est encore en développement, et donc caché du public.
display_namestringNom du produit tel que l’extension l’affiche.
expirationstringMoment où le produit cesse d’être vendu, sous forme d’horodatage RFC 3339.
is_broadcastbooleanIndique si un achat est annoncé à toutes les instances de l’extension sur la chaîne.
const products = await twitch.extensions.bitsProducts({ should_include_all: true });

Référence Twitch

twitch.extensions.updateBitsProduct(params, options?): Promise<ExtensionBitsProduct>

Crée un produit Bits, ou met à jour celui qui porte déjà ce SKU.

Jeton : application, émis pour l’identifiant client de l’extension.

NomTypeDescription
sku requisstringSKU du produit à créer ou à mettre à jour, 255 caractères au plus : lettres, chiffres, tirets, tirets bas et points. Il ne peut jamais être modifié.
cost requisExtensionBitsProductCostPrix du produit.
display_name requisstringNom du produit tel que l’extension l’affiche, 255 caractères au plus.
in_developmentbooleanGarde le produit caché du public. Twitch prend false par défaut.
expirationstring | DateMoment où le produit expire. Jamais, si la valeur est omise. Une date passée le désactive.
is_broadcastbooleanAnnonce les achats à toutes les instances de l’extension sur la chaîne. Twitch prend false par défaut.

options : Options de requête pour cet appel : as, token, signal, timeout, retries.

Promise<ExtensionBitsProduct>

Champs de ExtensionBitsProduct
NomTypeDescription
skustringSKU du produit, unique au sein de l’extension.
costExtensionBitsProductCostPrix du produit.
in_developmentbooleanIndique si le produit est encore en développement, et donc caché du public.
display_namestringNom du produit tel que l’extension l’affiche.
expirationstringMoment où le produit cesse d’être vendu, sous forme d’horodatage RFC 3339.
is_broadcastbooleanIndique si un achat est annoncé à toutes les instances de l’extension sur la chaîne.
const product = await twitch.extensions.updateBitsProduct({
sku: "rusty-crate",
cost: { amount: 990, type: "bits" },
display_name: "Rusty Crate",
});

Référence Twitch