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 のレート制限を超過しています。
チャンネル名が正しくないか、アカウントがチャンネルから BAN されている可能性があります。