OpenClaw Twitch 채널
IRC를 통해 OpenClaw를 Twitch 채팅에 연결하여 AI 어시스턴트가 시청자와 실시간으로 상호작용할 수 있도록 합니다. Twitch 플러그인을 설치하고 채팅 스코프가 포함된 OAuth 토큰을 구성하면 봇이 채널에 참여하여 멘션에 응답하고 역할 기반 접근 제어로 대화를 관리할 수 있습니다.
Twitch 지원 기능
텍스트 메시지
지원
미디어 및 파일
미지원
리액션
미지원
스레드
미지원
음성 메시지
미지원
그룹 채팅
지원
Twitch 사전 요구사항
- 봇 ID로 사용할 Twitch 계정
- chat:read 및 chat:write 스코프가 포함된 OAuth Access Token
- Twitch Developer Console에서 발급한 Client ID
- OpenClaw Gateway 설치 및 실행 완료
- 'openclaw plugins install @openclaw/twitch'를 통해 Twitch 플러그인 설치 완료
Twitch 빠른 설정
Twitch 플러그인 설치
'openclaw plugins install @openclaw/twitch'를 실행하여 Twitch 지원을 추가합니다. 또는 'openclaw plugins install ./extensions/twitch'로 로컬 경로에서 설치할 수도 있습니다.
OAuth 토큰 및 Client ID 발급
twitchtokengenerator.com을 방문하여 chat:read 및 chat:write 스코프가 포함된 'Bot Token'을 선택합니다. Access Token을 복사합니다. 또한 Twitch Developer Console(dev.twitch.tv/console)에서 Client ID를 발급받습니다.
구성 및 실행
~/.openclaw/openclaw.json에 username, accessToken, clientId, 대상 채널을 포함한 Twitch 채널 구성을 추가합니다. 'openclaw start'로 Gateway를 시작하고 Twitch 채널에서 봇을 멘션하는 메시지를 전송하여 정상 작동을 확인합니다.
Twitch 구성 예시
{
"channels": {
"twitch": {
"enabled": true,
"username": "mybotname",
"accessToken": "oauth:abc123...",
"clientId": "your-client-id",
"channel": "targetchannel",
"allowFrom": ["123456789"]
}
}
}Twitch 상세 문서
아키텍처 개요
자격 증명 발급
# Environment variable (default account only)
export OPENCLAW_TWITCH_ACCESS_TOKEN=oauth:abc123...토큰 자동 갱신
{
"channels": {
"twitch": {
"accessToken": "oauth:abc123...",
"clientId": "your-client-id",
"clientSecret": "your-client-secret",
"refreshToken": "your-refresh-token"
}
}
}사용자 ID를 통한 접근 제어
{
"channels": {
"twitch": {
"allowFrom": ["123456789", "987654321"]
}
}
}역할 기반 접근 제어
{
"channels": {
"twitch": {
"allowedRoles": ["moderator", "vip"]
}
}
}멘션 요구 사항
{
"channels": {
"twitch": {
"requireMention": false
}
}
}다중 계정 설정
{
"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"]
}
}
}
}
}에이전트 도구 액션
{
"action": "twitch",
"params": {
"message": "Hello Twitch!",
"to": "#mychannel"
}
}속도 제한 및 메시지 제약
Twitch 구성 참조
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | Twitch 채널 활성화 또는 비활성화 |
| username | string | "" | 봇이 사용하는 Twitch 계정 이름 |
| accessToken | string | "" | chat:read 및 chat:write 스코프가 포함된 OAuth 토큰 ('oauth:'로 시작해야 함) |
| clientId | string | "" | Twitch Developer Console에서 발급한 Client ID |
| channel | string | "" | 참여할 대상 Twitch 채널 (필수) |
| clientSecret | string | "" | 토큰 자동 갱신을 위한 Client Secret |
| refreshToken | string | "" | 토큰 자동 갱신을 위한 Refresh Token |
| expiresIn | number | — | 토큰 만료 시간 (초 단위) |
| obtainmentTimestamp | number | — | 현재 토큰이 발급된 타임스탬프 (밀리초) |
| allowFrom | string[] | [] | 엄격한 접근 제한을 위한 Twitch 사용자 ID 허용 목록 |
| allowedRoles | string[] | [] | 역할 기반 접근 제어 (moderator, owner, vip, subscriber, all) |
| requireMention | boolean | true | 봇이 응답하기 위해 @멘션이 필요한지 여부 |
| accounts.<id>.username | string | "" | 다중 계정 모드에서 특정 계정의 봇 사용자 이름 |
| accounts.<id>.accessToken | string | "" | 특정 계정의 OAuth 토큰 |
| accounts.<id>.channel | string | "" | 특정 계정의 대상 채널 |
Twitch 채널 활성화 또는 비활성화
봇이 사용하는 Twitch 계정 이름
chat:read 및 chat:write 스코프가 포함된 OAuth 토큰 ('oauth:'로 시작해야 함)
Twitch Developer Console에서 발급한 Client ID
참여할 대상 Twitch 채널 (필수)
토큰 자동 갱신을 위한 Client Secret
토큰 자동 갱신을 위한 Refresh Token
토큰 만료 시간 (초 단위)
현재 토큰이 발급된 타임스탬프 (밀리초)
엄격한 접근 제한을 위한 Twitch 사용자 ID 허용 목록
역할 기반 접근 제어 (moderator, owner, vip, subscriber, all)
봇이 응답하기 위해 @멘션이 필요한지 여부
다중 계정 모드에서 특정 계정의 봇 사용자 이름
특정 계정의 OAuth 토큰
특정 계정의 대상 채널
Twitch 자주 묻는 질문
Twitch 문제 해결
allowFrom 목록에 사용자 ID가 포함되어 있지 않거나 봇이 @멘션을 감지하지 못하고 있을 수 있습니다.
OAuth 토큰이 유효하지 않거나, 만료되었거나, 필수 스코프가 누락되었습니다.
clientSecret 또는 refreshToken이 누락되었거나 올바르지 않습니다.
봇이 Twitch의 속도 제한을 초과하고 있습니다.
채널 이름이 올바르지 않거나 계정이 채널에서 차단되었을 수 있습니다.