Canal Twitch de OpenClaw
Conecta OpenClaw al chat de Twitch mediante IRC, permitiendo que tu asistente de IA interactue con los espectadores en tiempo real. Instala el plugin de Twitch, configura un OAuth token con permisos de chat y tu bot podra unirse a canales, responder a menciones y gestionar conversaciones con control de acceso basado en roles.
Twitch Funciones compatibles
Mensajes de texto
Compatible
Medios y archivos
No compatible
Reacciones
No compatible
Hilos
No compatible
Mensajes de voz
No compatible
Chat grupal
Compatible
Twitch Requisitos previos
- Una cuenta de Twitch para usar como identidad del bot
- Un OAuth Access Token con los permisos chat:read y chat:write
- Un Client ID de la Consola de Desarrolladores de Twitch
- OpenClaw Gateway instalado y en ejecucion
- El plugin de Twitch instalado mediante 'openclaw plugins install @openclaw/twitch'
Twitch Configuración rápida
Instalar el plugin de Twitch
Ejecuta 'openclaw plugins install @openclaw/twitch' para agregar compatibilidad con Twitch. Alternativamente, instala desde una ruta local con 'openclaw plugins install ./extensions/twitch'.
Obtener tu OAuth token y Client ID
Visita twitchtokengenerator.com y selecciona 'Bot Token' con los permisos chat:read y chat:write. Copia el access token. Tambien obtiene tu Client ID desde la Consola de Desarrolladores de Twitch (dev.twitch.tv/console).
Configurar e iniciar
Agrega la configuracion del canal de Twitch en ~/.openclaw/openclaw.json con tu nombre de usuario, accessToken, clientId y el canal de destino. Inicia el Gateway con 'openclaw start' y envia un mensaje mencionando al bot en el canal de Twitch para verificar.
Twitch Ejemplo de configuración
{
"channels": {
"twitch": {
"enabled": true,
"username": "mybotname",
"accessToken": "oauth:abc123...",
"clientId": "your-client-id",
"channel": "targetchannel",
"allowFrom": ["123456789"]
}
}
}Twitch Documentación Detallada
Descripcion general de la arquitectura
Obtener tus credenciales
# Environment variable (default account only)
export OPENCLAW_TWITCH_ACCESS_TOKEN=oauth:abc123...Renovacion automatica de tokens
{
"channels": {
"twitch": {
"accessToken": "oauth:abc123...",
"clientId": "your-client-id",
"clientSecret": "your-client-secret",
"refreshToken": "your-refresh-token"
}
}
}Control de acceso con IDs de usuario
{
"channels": {
"twitch": {
"allowFrom": ["123456789", "987654321"]
}
}
}Control de acceso basado en roles
{
"channels": {
"twitch": {
"allowedRoles": ["moderator", "vip"]
}
}
}Requisito de mencion
{
"channels": {
"twitch": {
"requireMention": false
}
}
}Configuracion multicuenta
{
"channels": {
"twitch": {
"accounts": {
"gaming-bot": {
"username": "gamingbot",
"accessToken": "oauth:token1...",
"clientId": "client-id-1",
"channel": "gamingchannel",
"allowedRoles": ["subscriber"]
},
"mod-bot": {
"username": "modbot",
"accessToken": "oauth:token2...",
"clientId": "client-id-2",
"channel": "modchannel",
"allowFrom": ["111222333"]
}
}
}
}
}Acciones de herramientas del agente
{
"action": "twitch",
"params": {
"message": "Hello Twitch!",
"to": "#mychannel"
}
}Limites de frecuencia y restricciones de mensajes
Twitch Referencia de Configuración
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | Habilitar o deshabilitar el canal de Twitch |
| username | string | "" | El nombre de la cuenta de Twitch utilizada por el bot |
| accessToken | string | "" | OAuth token con los permisos chat:read y chat:write (debe comenzar con 'oauth:') |
| clientId | string | "" | Client ID de la Consola de Desarrolladores de Twitch |
| channel | string | "" | Canal de Twitch de destino al que unirse (obligatorio) |
| clientSecret | string | "" | Client secret para la renovacion automatica de tokens |
| refreshToken | string | "" | Refresh token para la renovacion automatica de tokens |
| expiresIn | number | — | Duracion de expiracion del token en segundos |
| obtainmentTimestamp | number | — | Marca de tiempo (ms) de cuando se obtuvo el token actual |
| allowFrom | string[] | [] | Lista de IDs de usuario de Twitch permitidos para restriccion de acceso estricta |
| allowedRoles | string[] | [] | Control de acceso basado en roles (moderator, owner, vip, subscriber, all) |
| requireMention | boolean | true | Si el bot requiere una @mencion para responder |
| accounts.<id>.username | string | "" | Nombre de usuario del bot para una cuenta especifica en modo multicuenta |
| accounts.<id>.accessToken | string | "" | OAuth token para una cuenta especifica |
| accounts.<id>.channel | string | "" | Canal de destino para una cuenta especifica |
Habilitar o deshabilitar el canal de Twitch
El nombre de la cuenta de Twitch utilizada por el bot
OAuth token con los permisos chat:read y chat:write (debe comenzar con 'oauth:')
Client ID de la Consola de Desarrolladores de Twitch
Canal de Twitch de destino al que unirse (obligatorio)
Client secret para la renovacion automatica de tokens
Refresh token para la renovacion automatica de tokens
Duracion de expiracion del token en segundos
Marca de tiempo (ms) de cuando se obtuvo el token actual
Lista de IDs de usuario de Twitch permitidos para restriccion de acceso estricta
Control de acceso basado en roles (moderator, owner, vip, subscriber, all)
Si el bot requiere una @mencion para responder
Nombre de usuario del bot para una cuenta especifica en modo multicuenta
OAuth token para una cuenta especifica
Canal de destino para una cuenta especifica
Twitch Preguntas Frecuentes
Twitch Solución de Problemas
La lista allowFrom puede no incluir tu ID de usuario, o el bot no esta detectando la @mencion.
El OAuth token es invalido, ha expirado o le faltan los permisos requeridos.
El clientSecret o el refreshToken falta o es incorrecto.
El bot esta excediendo los limites de frecuencia de Twitch.
El nombre del canal puede ser incorrecto o la cuenta ha sido baneada del canal.