Twitch
Supporto della chat Twitch tramite connessione IRC. OpenClaw si connette come utente Twitch (account bot) per ricevere e inviare messaggi nei canali.Plugin incluso
Twitch è distribuito come plugin incluso nelle attuali versioni di OpenClaw, quindi le normali build pacchettizzate non richiedono un’installazione separata. Se usi una build più vecchia o un’installazione personalizzata che esclude Twitch, installalo manualmente: Installa tramite CLI (registro npm):Configurazione rapida (principianti)
- Assicurati che il plugin Twitch sia disponibile.
- Le attuali versioni pacchettizzate di OpenClaw lo includono già.
- Le installazioni vecchie/personalizzate possono aggiungerlo manualmente con i comandi sopra.
- Crea un account Twitch dedicato per il bot (oppure usa un account esistente).
- Genera le credenziali: Twitch Token Generator
- Seleziona Bot Token
- Verifica che gli scope
chat:readechat:writesiano selezionati - Copia il Client ID e l’Access Token
- Trova il tuo ID utente Twitch: https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/
- Configura il token:
- Variabile d’ambiente:
OPENCLAW_TWITCH_ACCESS_TOKEN=...(solo account predefinito) - Oppure config:
channels.twitch.accessToken - Se sono impostati entrambi, la config ha la precedenza (il fallback alla variabile d’ambiente vale solo per l’account predefinito).
- Variabile d’ambiente:
- Avvia il gateway.
allowFrom o allowedRoles) per impedire a utenti non autorizzati di attivare il bot. requireMention è impostato su true per impostazione predefinita.
Configurazione minima:
Che cos’è
- Un canale Twitch di proprietà del Gateway.
- Routing deterministico: le risposte tornano sempre su Twitch.
- Ogni account è associato a una chiave di sessione isolata
agent:<agentId>:twitch:<accountName>. usernameè l’account del bot (quello che si autentica),channelè la chat room a cui unirsi.
Configurazione (dettagliata)
Generare le credenziali
Usa Twitch Token Generator:- Seleziona Bot Token
- Verifica che gli scope
chat:readechat:writesiano selezionati - Copia il Client ID e l’Access Token
Configurare il bot
Variabile d’ambiente (solo account predefinito):Controllo di accesso (consigliato)
allowFrom per una allowlist rigida. Usa invece allowedRoles se vuoi un accesso basato sui ruoli.
Ruoli disponibili: "moderator", "owner", "vip", "subscriber", "all".
Perché gli ID utente? I nomi utente possono cambiare, consentendo impersonificazioni. Gli ID utente sono permanenti.
Trova il tuo ID utente Twitch: https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ (Converti il tuo nome utente Twitch in ID)
Aggiornamento del token (facoltativo)
I token di Twitch Token Generator non possono essere aggiornati automaticamente: rigenerali quando scadono. Per l’aggiornamento automatico del token, crea la tua applicazione Twitch in Twitch Developer Console e aggiungi alla config:Supporto multi-account
Usachannels.twitch.accounts con token per account. Vedi gateway/configuration per il pattern condiviso.
Esempio (un account bot in due canali):
Controllo di accesso
Restrizioni basate sui ruoli
Allowlist per ID utente (più sicura)
Accesso basato sui ruoli (alternativa)
allowFrom è una allowlist rigida. Quando è impostato, sono consentiti solo quegli ID utente.
Se vuoi un accesso basato sui ruoli, lascia allowFrom non impostato e configura invece allowedRoles:
Disattivare il requisito di @mention
Per impostazione predefinita,requireMention è true. Per disattivarlo e rispondere a tutti i messaggi:
Risoluzione dei problemi
Per prima cosa, esegui i comandi diagnostici:Il bot non risponde ai messaggi
Controlla il controllo di accesso: assicurati che il tuo ID utente sia inallowFrom, oppure rimuovi temporaneamente allowFrom e imposta allowedRoles: ["all"] per fare una prova.
Controlla che il bot sia nel canale: il bot deve unirsi al canale specificato in channel.
Problemi con il token
“Failed to connect” o errori di autenticazione:- Verifica che
accessTokensia il valore del token di accesso OAuth (in genere inizia con il prefissooauth:) - Controlla che il token abbia gli scope
chat:readechat:write - Se usi l’aggiornamento del token, verifica che
clientSecreterefreshTokensiano impostati
L’aggiornamento del token non funziona
Controlla i log per gli eventi di aggiornamento:- Assicurati che
clientSecretsia fornito - Assicurati che
refreshTokensia fornito
Configurazione
Configurazione account:username- Nome utente del botaccessToken- Token di accesso OAuth conchat:readechat:writeclientId- Twitch Client ID (da Token Generator o dalla tua app)channel- Canale a cui unirsi (obbligatorio)enabled- Abilita questo account (predefinito:true)clientSecret- Facoltativo: per l’aggiornamento automatico del tokenrefreshToken- Facoltativo: per l’aggiornamento automatico del tokenexpiresIn- Scadenza del token in secondiobtainmentTimestamp- Timestamp di ottenimento del tokenallowFrom- Allowlist di ID utenteallowedRoles- Controllo di accesso basato sui ruoli ("moderator" | "owner" | "vip" | "subscriber" | "all")requireMention- Richiede @mention (predefinito:true)
channels.twitch.enabled- Abilita/disabilita l’avvio del canalechannels.twitch.username- Nome utente del bot (configurazione semplificata a singolo account)channels.twitch.accessToken- Token di accesso OAuth (configurazione semplificata a singolo account)channels.twitch.clientId- Twitch Client ID (configurazione semplificata a singolo account)channels.twitch.channel- Canale a cui unirsi (configurazione semplificata a singolo account)channels.twitch.accounts.<accountName>- Configurazione multi-account (tutti i campi account sopra)
Azioni dello strumento
L’agente può chiamaretwitch con l’azione:
send- Invia un messaggio a un canale
Sicurezza e operazioni
- Tratta i token come password - Non salvare mai i token in git
- Usa l’aggiornamento automatico del token per bot a lunga esecuzione
- Usa allowlist di ID utente invece dei nomi utente per il controllo di accesso
- Monitora i log per eventi di aggiornamento del token e stato della connessione
- Limita al minimo gli scope dei token - Richiedi solo
chat:readechat:write - Se resti bloccato: riavvia il gateway dopo aver confermato che nessun altro processo possieda la sessione
Limiti
- 500 caratteri per messaggio (suddivisione automatica ai confini delle parole)
- Il Markdown viene rimosso prima della suddivisione
- Nessun rate limiting (usa i limiti di frequenza integrati di Twitch)
Correlati
- Panoramica dei canali — tutti i canali supportati
- Abbinamento — autenticazione DM e flusso di abbinamento
- Gruppi — comportamento delle chat di gruppo e blocco tramite mention
- Routing dei canali — routing di sessione per i messaggi
- Sicurezza — modello di accesso e hardening