Skip to main content
Prise en charge du chat Twitch via l’interface de chat (IRC) de Twitch, au moyen du client Twurple. OpenClaw se connecte avec un compte de bot Twitch, rejoint un canal par compte configuré et répond dans ce canal.

Installation

Twitch est distribué en tant que Plugin officiel ; il ne fait pas partie de l’installation principale.
plugins install enregistre et active le Plugin. Sélectionner Twitch pendant openclaw onboard ou openclaw channels add l’installe à la demande. Utilisez le nom de paquet seul pour suivre la version actuelle ; épinglez une version exacte uniquement pour obtenir des installations reproductibles. Nécessite OpenClaw 2026.4.10 ou une version ultérieure. Détails : Plugins

Configuration rapide

1

Installer le Plugin

Consultez la section Installation ci-dessus.
2

Créer un compte de bot Twitch

Créez un compte Twitch dédié au bot (ou utilisez un compte existant).
3

Générer les identifiants

Utilisez Twitch Token Generator :
  • Sélectionnez Bot Token
  • Vérifiez que les autorisations chat:read et chat:write sont sélectionnées
  • Copiez le Client ID et l’Access Token
4

Trouver votre identifiant utilisateur Twitch

Utilisez https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ pour convertir un nom d’utilisateur en identifiant utilisateur Twitch.
5

Configurer le jeton

  • Variable d’environnement : OPENCLAW_TWITCH_ACCESS_TOKEN=... (compte par défaut uniquement)
  • Ou configuration : channels.twitch.accessToken
Si les deux sont définis, la configuration est prioritaire (la variable d’environnement sert uniquement de solution de repli pour le compte par défaut).
6

Démarrer le Gateway

Ajoutez un contrôle d’accès (allowFrom ou allowedRoles) pour empêcher les utilisateurs non autorisés de déclencher le bot. La valeur par défaut de requireMention est true.
Configuration minimale :

Présentation

  • Un canal Twitch détenu par le Gateway.
  • Routage déterministe : les réponses sont toujours renvoyées vers le canal Twitch d’où provient le message.
  • Chaque canal rejoint correspond à une clé de session de groupe isolée agent:<agentId>:twitch:group:<channel>.
  • username désigne le compte du bot (celui qui s’authentifie) et channel le salon de discussion à rejoindre. Chaque entrée de compte rejoint exactement un canal.
  • Les jetons fonctionnent avec ou sans le préfixe oauth: ; OpenClaw normalise les deux formes (l’assistant de configuration attend la forme oauth:).

Actualisation du jeton (facultatif)

Les jetons provenant de Twitch Token Generator ne peuvent pas être actualisés par OpenClaw : régénérez-les lorsqu’ils expirent (ils durent quelques heures ; aucun enregistrement d’application n’est nécessaire). Pour une actualisation automatique, créez votre propre application dans la console de développement Twitch et ajoutez :
Lorsque les deux sont définis, le Plugin utilise un fournisseur d’authentification avec actualisation qui renouvelle les jetons avant leur expiration et journalise chaque actualisation. Sans refreshToken, il journalise token refresh disabled (no refresh token) ; sans clientSecret, il utilise à la place un jeton statique (non actualisé).

Prise en charge de plusieurs comptes

Utilisez channels.twitch.accounts avec des identifiants propres à chaque compte. Consultez Configuration pour connaître le modèle commun. Exemple (un compte de bot dans deux canaux) :
Chaque entrée de compte nécessite son propre accessToken (la variable d’environnement couvre uniquement le compte par défaut). Un compte rejoint exactement un canal ; rejoindre deux canaux nécessite donc deux comptes. channels.twitch.defaultAccount détermine le compte par défaut.

Contrôle d’accès

allowFrom est une liste d’autorisation stricte d’identifiants utilisateur Twitch. Lorsqu’elle est définie, allowedRoles est ignoré ; ne définissez pas allowFrom pour utiliser à la place l’accès fondé sur les rôles. Rôles disponibles : "moderator", "owner", "vip", "subscriber", "all".
Pourquoi utiliser des identifiants utilisateur ? Les noms d’utilisateur peuvent changer, ce qui permet l’usurpation d’identité. Les identifiants utilisateur sont permanents.Trouvez le vôtre à l’aide du convertisseur de nom d’utilisateur en identifiant.

Dépannage

Commencez par exécuter les commandes de diagnostic :
  • Vérifiez le contrôle d’accès : assurez-vous que votre identifiant utilisateur figure dans allowFrom, ou supprimez temporairement allowFrom et définissez allowedRoles: ["all"] pour effectuer un test.
  • Vérifiez le filtre de mention : avec requireMention: true (valeur par défaut), les messages doivent mentionner le nom d’utilisateur du bot avec @.
  • Vérifiez que le bot se trouve dans le canal : le bot rejoint uniquement le canal indiqué dans channel.
Erreurs Failed to connect ou erreurs d’authentification :
  • Vérifiez que accessToken contient la valeur du jeton d’accès OAuth (le préfixe oauth: est facultatif)
  • Vérifiez que le jeton possède les autorisations chat:read et chat:write
  • Si vous utilisez l’actualisation du jeton, vérifiez que clientSecret et refreshToken sont définis
Recherchez les événements d’actualisation dans les journaux :
Si vous voyez token refresh disabled (no refresh token) :
  • Assurez-vous que clientSecret est fourni
  • Assurez-vous que refreshToken est fourni

Configuration

Configuration du compte

string
requis
Nom d’utilisateur du bot (le compte utilisé pour l’authentification).
string
requis
Jeton d’accès OAuth avec chat:read et chat:write (configuration ou variable d’environnement pour le compte par défaut).
string
requis
Identifiant client Twitch (provenant du générateur de jetons ou de votre application). Facultatif dans le schéma, mais obligatoire pour se connecter.
string
requis
Canal à rejoindre.
boolean
défaut:"true"
Active ce compte.
string
Facultatif : permet l’actualisation automatique du jeton.
string
Facultatif : permet l’actualisation automatique du jeton.
number
Délai d’expiration du jeton en secondes (suivi de l’actualisation).
number
Horodatage de l’obtention du jeton (suivi de l’actualisation).
string[]
Liste d’autorisation d’identifiants utilisateur. Lorsqu’elle est définie, les rôles sont ignorés.
Array<"moderator" | "owner" | "vip" | "subscriber" | "all">
Contrôle d’accès fondé sur les rôles.
boolean
défaut:"true"
Exige une mention @ pour déclencher le bot.
string
Remplacement du préfixe des réponses sortantes pour ce compte.

Options du fournisseur

  • channels.twitch.enabled - Activer ou désactiver le démarrage du canal
  • channels.twitch.username / accessToken / clientId / channel - Configuration simplifiée pour un seul compte (compte default implicite ; prioritaire sur accounts.default)
  • channels.twitch.accounts.<accountName> - Configuration de plusieurs comptes (tous les champs de compte ci-dessus)
  • channels.twitch.defaultAccount - Nom du compte utilisé par défaut
  • channels.twitch.markdown.tables - Mode de rendu des tableaux Markdown (off | bullets | code | block)
Exemple complet :

Actions de l’outil

L’agent peut envoyer des messages Twitch au moyen de l’action send de l’outil de messagerie :
to est facultatif et utilise par défaut le channel configuré pour le compte.

Sécurité et exploitation

  • Traitez les jetons comme des mots de passe : ne validez jamais de jetons dans git.
  • Utilisez l’actualisation automatique des jetons pour les bots fonctionnant sur de longues périodes.
  • Utilisez des listes d’autorisation d’identifiants utilisateur plutôt que des noms d’utilisateur pour le contrôle d’accès.
  • Surveillez les journaux pour suivre les événements d’actualisation des jetons et l’état de la connexion.
  • Limitez autant que possible la portée des jetons : demandez uniquement chat:read et chat:write.
  • En cas de blocage : redémarrez le Gateway après avoir vérifié qu’aucun autre processus ne détient la session.

Limites

  • 500 caractères par message ; les réponses plus longues sont découpées aux limites des mots.
  • Le Markdown est supprimé avant l’envoi (le chat Twitch utilise du texte brut ; les sauts de ligne deviennent des espaces).
  • OpenClaw n’ajoute aucune limitation de débit propre ; le client de chat Twurple gère les limites de débit de Twitch.

Pages connexes