Twitch
Soporte de chat de Twitch mediante conexión IRC. OpenClaw se conecta como usuario de Twitch (cuenta de bot) para recibir y enviar mensajes en los canales.
Complemento incluido
Sección titulada «Complemento incluido»Si está en una versión antigua o una instalación personalizada que excluye Twitch, instale el paquete npm directamente:
bash openclaw plugins install @openclaw/twitch
bash openclaw plugins install ./path/to/local/twitch-plugin
Use el paquete básico para seguir la etiqueta oficial de lanzamiento actual. Fije una versión exacta solo cuando necesite una instalación reproducible.
Detalles: Plugins
Configuración rápida (principiante)
Sección titulada «Configuración rápida (principiante)»Asegurarse de que el complemento esté disponible
Las versiones empaquetadas actuales de OpenClaw ya lo incluyen. Las instalaciones antiguas/personalizadas pueden añadirlo manualmente con los comandos anteriores.
Crear una cuenta de bot de Twitch
Cree una cuenta de Twitch dedicada para el bot (o use una cuenta existente).
Generar credenciales
- Seleccione Bot Token
- Verifique que los ámbitos
chat:readychat:writeestén seleccionados - Copie el Client ID y el Access Token
Buscar su ID de usuario de Twitch
Use https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ para convertir un nombre de usuario en un ID de usuario de Twitch.
Configurar el token
- Env:
OPENCLAW_TWITCH_ACCESS_TOKEN=...(solo cuenta predeterminada) - O configuración:
channels.twitch.accessToken
Si ambos están configurados, la configuración tiene prioridad (la alternativa de env es solo para la cuenta predeterminada).
- Env:
Iniciar la puerta de enlace
Inicie la puerta de enlace con el canal configurado.
Configuración mínima:
{ channels: { twitch: { enabled: true, username: "openclaw", // Bot's Twitch account accessToken: "oauth:abc123...", // OAuth Access Token (or use OPENCLAW_TWITCH_ACCESS_TOKEN env var) clientId: "xyz789...", // Client ID from Token Generator channel: "vevisk", // Which Twitch channel's chat to join (required) allowFrom: ["123456789"], // (recommended) Your Twitch user ID only - get it from https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ }, },}- Un canal de Twitch propiedad de la Gateway.
- Enrutamiento determinista: las respuestas siempre vuelven a Twitch.
- Cada cuenta se asigna a una clave de sesión aislada
agent:<agentId>:twitch:<accountName>. usernamees la cuenta del bot (quién se autentica),channeles a qué sala de chat unirse.
Configuración (detallada)
Sección titulada «Configuración (detallada)»Generar credenciales
Sección titulada «Generar credenciales»- Seleccione Bot Token
- Verifique que los alcances
chat:readychat:writeestén seleccionados - Copie el Client ID y el Access Token
Configurar el bot
Sección titulada «Configurar el bot»OPENCLAW_TWITCH_ACCESS_TOKEN=oauth:abc123...{ channels: { twitch: { enabled: true, username: "openclaw", accessToken: "oauth:abc123...", clientId: "xyz789...", channel: "vevisk", }, },}Si se configuran tanto las variables de entorno como el archivo de configuración, la configuración tiene prioridad.
Control de acceso (recomendado)
Sección titulada «Control de acceso (recomendado)»{ channels: { twitch: { allowFrom: ["123456789"], // (recommended) Your Twitch user ID only }, },}Prefiera allowFrom para una lista de permitidos estricta. Use allowedRoles en su lugar si desea un control de acceso basado en roles.
Roles disponibles: "moderator", "owner", "vip", "subscriber", "all".
Actualización de token (opcional)
Sección titulada «Actualización de token (opcional)»Los tokens de Twitch Token Generator no se pueden actualizar automáticamente; regenérelos cuando caduquen.
Para la actualización automática de tokens, cree su propia aplicación de Twitch en Twitch Developer Console y agréguela a la configuración:
{ channels: { twitch: { clientSecret: "your_client_secret", refreshToken: "your_refresh_token", }, },}El bot actualiza automáticamente los tokens antes de que caduquen y registra los eventos de actualización.
Soporte multicuenta
Sección titulada «Soporte multicuenta»Use channels.twitch.accounts con tokens por cuenta. Consulte Configuration para ver el patrón compartido.
Ejemplo (una cuenta de bot en dos canales):
{ channels: { twitch: { accounts: { channel1: { username: "openclaw", accessToken: "oauth:abc123...", clientId: "xyz789...", channel: "vevisk", }, channel2: { username: "openclaw", accessToken: "oauth:def456...", clientId: "uvw012...", channel: "secondchannel", }, }, }, },}Control de acceso
Sección titulada «Control de acceso»{ channels: { twitch: { accounts: { default: { allowFrom: ["123456789", "987654321"], }, }, }, },}{ channels: { twitch: { accounts: { default: { allowedRoles: ["moderator", "vip"], }, }, }, },}allowFrom es una lista de permitidos estricta. Cuando se establece, solo se permiten esos IDs de usuario. Si deseas un acceso basado en roles, deja allowFrom sin establecer y configura allowedRoles en su lugar.
De forma predeterminada, requireMention es true. Para desactivar y responder a todos los mensajes:
{ channels: { twitch: { accounts: { default: { requireMention: false, }, }, }, },}Solución de problemas
Sección titulada «Solución de problemas»Primero, ejecuta los comandos de diagnóstico:
openclaw doctoropenclaw channels status --probeEl bot no responde a los mensajes
- Verificar el control de acceso: Asegúrate de que tu ID de usuario esté en
allowFrom, o elimina temporalmenteallowFromy estableceallowedRoles: ["all"]para probar. - Verificar que el bot esté en el canal: El bot debe unirse al canal especificado en
channel.
Problemas con el token
“Fallo al conectar” o errores de autenticación:
- Verifica que
accessTokensea el valor del token de acceso OAuth (generalmente comienza con el prefijooauth:) - Verifica que el token tenga los alcances
chat:readychat:write - Si usas la actualización del token, verifica que
clientSecretyrefreshTokenestén establecidos
La actualización del token no funciona
Revisa los registros en busca de eventos de actualización:
Using env token source for mybotAccess token refreshed for user 123456 (expires in 14400s)Si ves “token refresh disabled (no refresh token)”:
- Asegúrate de que se proporcione
clientSecret - Asegúrate de que se proporcione
refreshToken
Configuración
Sección titulada «Configuración»Configuración de cuenta
Sección titulada «Configuración de cuenta»Opciones del proveedor
Sección titulada «Opciones del proveedor»channels.twitch.enabled- Habilitar/deshabilitar el inicio del canalchannels.twitch.username- Nombre de usuario del bot (config simplificada de una sola cuenta)channels.twitch.accessToken- Token de acceso OAuth (config simplificada de una sola cuenta)channels.twitch.clientId- ID de cliente de Twitch (config simplificada de una sola cuenta)channels.twitch.channel- Canal al que unirse (config simplificada de una sola cuenta)channels.twitch.accounts.<accountName>- Configuración multicuenta (todos los campos de cuenta anteriores)
Ejemplo completo:
{ channels: { twitch: { enabled: true, username: "openclaw", accessToken: "oauth:abc123...", clientId: "xyz789...", channel: "vevisk", clientSecret: "secret123...", refreshToken: "refresh456...", allowFrom: ["123456789"], allowedRoles: ["moderator", "vip"], accounts: { default: { username: "mybot", accessToken: "oauth:abc123...", clientId: "xyz789...", channel: "your_channel", enabled: true, clientSecret: "secret123...", refreshToken: "refresh456...", expiresIn: 14400, obtainmentTimestamp: 1706092800000, allowFrom: ["123456789", "987654321"], allowedRoles: ["moderator"], }, }, }, },}Acciones de herramienta
Sección titulada «Acciones de herramienta»El agente puede llamar a twitch con la acción:
send- Enviar un mensaje a un canal
Ejemplo:
{ action: "twitch", params: { message: "Hello Twitch!", to: "#mychannel", },}Seguridad y operaciones
Sección titulada «Seguridad y operaciones»- Trate los tokens como contraseñas — Nunca confíe tokens a git.
- Use la actualización automática de tokens para bots de larga duración.
- Use listas de permitidos de ID de usuario en lugar de nombres de usuario para el control de acceso.
- Monitoree los registros para ver eventos de actualización de tokens y el estado de la conexión.
- Limite el alcance de los tokens al mínimo — Solicite solo
chat:readychat:write. - Si se bloquea: Reinicie la puerta de enlace después de confirmar que ningún otro proceso es dueño de la sesión.
Límites
Sección titulada «Límites»- 500 caracteres por mensaje (divididos automáticamente en los límites de las palabras).
- Se elimina el Markdown antes de dividir.
- Sin límite de velocidad (usa los límites de velocidad integrados de Twitch).
Relacionado
Sección titulada «Relacionado»- Enrutamiento de canales — enrutamiento de sesión para mensajes
- Descripción general de canales — todos los canales compatibles
- Grupos — comportamiento del chat de grupo y restricción de menciones
- Emparejamiento — autenticación de mensajes directos y flujo de emparejamiento
- Seguridad — modelo de acceso y endurecimiento