Twitch
Prise en charge du chat Twitch via connexion IRC. OpenClaw se connecte comme utilisateur Twitch (compte bot) pour recevoir et envoyer des messages dans les canaux.Plugin intégré
Twitch est livré comme plugin intégré dans les versions actuelles d’OpenClaw, donc les builds packagés normaux ne nécessitent pas d’installation séparée. Si vous utilisez une ancienne build ou une installation personnalisée qui exclut Twitch, installez-le manuellement : Installer via la CLI (registre npm) :Configuration rapide (débutant)
- Assurez-vous que le plugin Twitch est disponible.
- Les versions packagées actuelles d’OpenClaw l’intègrent déjà.
- Les installations anciennes/personnalisées peuvent l’ajouter manuellement avec les commandes ci-dessus.
- Créez un compte Twitch dédié pour le bot (ou utilisez un compte existant).
- Générez des identifiants : Twitch Token Generator
- Sélectionnez Bot Token
- Vérifiez que les portées
chat:readetchat:writesont sélectionnées - Copiez le Client ID et l’Access Token
- Trouvez votre ID utilisateur Twitch : https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/
- Configurez 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 a priorité (le repli sur variable d’environnement ne s’applique qu’au compte par défaut).
- Variable d’environnement :
- Démarrez la gateway.
allowFrom ou allowedRoles) pour empêcher des utilisateurs non autorisés de déclencher le bot. requireMention est défini sur true par défaut.
Configuration minimale :
Ce que c’est
- Un canal Twitch détenu par la gateway.
- Routage déterministe : les réponses reviennent toujours vers Twitch.
- Chaque compte correspond à une clé de session isolée
agent:<agentId>:twitch:<accountName>. usernameest le compte du bot (celui qui s’authentifie),channelest le salon de discussion à rejoindre.
Configuration détaillée
Générer des identifiants
Utilisez Twitch Token Generator :- Sélectionnez Bot Token
- Vérifiez que les portées
chat:readetchat:writesont sélectionnées - Copiez le Client ID et l’Access Token
Configurer le bot
Variable d’environnement (compte par défaut uniquement) :Contrôle d’accès (recommandé)
allowFrom pour une liste d’autorisation stricte. Utilisez plutôt allowedRoles si vous souhaitez un accès basé sur les rôles.
Rôles disponibles : "moderator", "owner", "vip", "subscriber", "all".
Pourquoi des IDs utilisateur ? Les noms d’utilisateur peuvent changer, ce qui permet l’usurpation. Les IDs utilisateur sont permanents.
Trouvez votre ID utilisateur Twitch : https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ (convertir votre nom d’utilisateur Twitch en ID)
Actualisation du jeton (facultatif)
Les jetons provenant de Twitch Token Generator ne peuvent pas être actualisés automatiquement : régénérez-les lorsqu’ils expirent. Pour une actualisation automatique des jetons, créez votre propre application Twitch dans Twitch Developer Console et ajoutez à la configuration :Prise en charge multi-comptes
Utilisezchannels.twitch.accounts avec des jetons par compte. Voir gateway/configuration pour le modèle partagé.
Exemple (un compte bot dans deux canaux) :
Contrôle d’accès
Restrictions basées sur les rôles
Liste d’autorisation par ID utilisateur (le plus sûr)
Accès basé sur les rôles (alternative)
allowFrom est une liste d’autorisation stricte. Lorsqu’il est défini, seuls ces IDs utilisateur sont autorisés.
Si vous voulez un accès basé sur les rôles, laissez allowFrom non défini et configurez plutôt allowedRoles :
Désactiver l’exigence de @mention
Par défaut,requireMention vaut true. Pour le désactiver et répondre à tous les messages :
Dépannage
Exécutez d’abord les commandes de diagnostic :Le bot ne répond pas aux messages
Vérifiez le contrôle d’accès : assurez-vous que votre ID utilisateur est dansallowFrom, ou supprimez temporairement
allowFrom et définissez allowedRoles: ["all"] pour tester.
Vérifiez que le bot est dans le canal : le bot doit rejoindre le canal spécifié dans channel.
Problèmes de jeton
« Failed to connect » ou erreurs d’authentification :- Vérifiez que
accessTokencorrespond à la valeur du jeton d’accès OAuth (commence généralement par le préfixeoauth:) - Vérifiez que le jeton possède les portées
chat:readetchat:write - Si vous utilisez l’actualisation de jeton, vérifiez que
clientSecretetrefreshTokensont définis
L’actualisation du jeton ne fonctionne pas
Vérifiez les journaux pour les événements d’actualisation :- Assurez-vous que
clientSecretest fourni - Assurez-vous que
refreshTokenest fourni
Configuration
Configuration du compte :username- nom d’utilisateur du botaccessToken- jeton d’accès OAuth avecchat:readetchat:writeclientId- ID client Twitch (depuis Token Generator ou votre application)channel- canal à rejoindre (obligatoire)enabled- activer ce compte (par défaut :true)clientSecret- facultatif : pour l’actualisation automatique du jetonrefreshToken- facultatif : pour l’actualisation automatique du jetonexpiresIn- expiration du jeton en secondesobtainmentTimestamp- horodatage d’obtention du jetonallowFrom- liste d’autorisation par ID utilisateurallowedRoles- contrôle d’accès basé sur les rôles ("moderator" | "owner" | "vip" | "subscriber" | "all")requireMention- exiger une @mention (par défaut :true)
channels.twitch.enabled- activer/désactiver le démarrage du canalchannels.twitch.username- nom d’utilisateur du bot (configuration simplifiée à compte unique)channels.twitch.accessToken- jeton d’accès OAuth (configuration simplifiée à compte unique)channels.twitch.clientId- ID client Twitch (configuration simplifiée à compte unique)channels.twitch.channel- canal à rejoindre (configuration simplifiée à compte unique)channels.twitch.accounts.<accountName>- configuration multi-comptes (tous les champs de compte ci-dessus)
Actions d’outil
L’agent peut appelertwitch avec l’action :
send- envoyer un message à un canal
Sécurité et exploitation
- Traitez les jetons comme des mots de passe - ne validez jamais des jetons dans git
- Utilisez l’actualisation automatique des jetons pour les bots de longue durée
- Utilisez des listes d’autorisation par ID utilisateur plutôt que des noms d’utilisateur pour le contrôle d’accès
- Surveillez les journaux pour les événements d’actualisation de jeton et l’état de la connexion
- Limitez au minimum les portées des jetons - demandez uniquement
chat:readetchat:write - En cas de blocage : redémarrez la gateway après avoir confirmé qu’aucun autre processus ne possède la session
Limites
- 500 caractères par message (segmentation automatique aux limites des mots)
- Le markdown est supprimé avant la segmentation
- Pas de limitation de débit (utilise les limites de débit intégrées de Twitch)
Lié
- Vue d’ensemble des canaux — tous les canaux pris en charge
- Jumelage — authentification en message privé et flux de jumelage
- Groupes — comportement des discussions de groupe et filtrage par mention
- Routage des canaux — routage de session pour les messages
- Sécurité — modèle d’accès et durcissement