プラグインが必要
Twitch はプラグインとして提供されており、コアインストールには同梱されていません。 CLI (npm レジストリ) 経由でインストールします:クイックセットアップ (初心者向け)
- ボット用の専用 Twitch アカウントを作成します(既存のアカウントを使用することも可能です)。
- 認証情報を生成します: Twitch Token Generator
- Bot Token を選択します。
- スコープに
chat:readとchat:writeが含まれていることを確認します。 - Client ID と Access Token をコピーします。
- Twitch ユーザー ID を確認します: ユーザー ID 変換ツール
- トークンを構成します:
- 環境変数:
OPENCLAW_TWITCH_ACCESS_TOKEN=...(デフォルトアカウントのみ) - 構成ファイル:
channels.twitch.accessToken - 両方が設定されている場合は構成ファイルが優先されます(環境変数はデフォルトアカウントにのみ適用されます)。
- 環境変数:
- ゲートウェイを起動します。
allowFrom または allowedRoles)を設定してください。requireMention はデフォルトで true です。
最小限の構成:
Twitch チャネルの概要
- ゲートウェイが所有する Twitch チャネルです。
- 確定的なルーティング: 返信は常にメッセージが届いた Twitch チャットに送信されます。
- 各アカウントは個別のセッションキー
agent:<agentId>:twitch:<accountName>にマッピングされます。 usernameは認証に使用するボットのアカウント名、channelは参加するチャットルーム名です。
詳細セットアップ
認証情報の生成
Twitch Token Generator を使用します:- Bot Token を選択します。
- スコープ
chat:readおよびchat:writeが選択されていることを確認します。 - Client ID と Access Token をコピーします。
ボットの構成
環境変数 (デフォルトアカウントのみ):アクセス制御 (推奨)
allowFrom を使用してください。ロール(役割)ベースのアクセスが必要な場合は、代わりに allowedRoles を使用します。
利用可能なロール: "moderator", "owner", "vip", "subscriber", "all"。
なぜユーザー ID なのか? ユーザー名は変更可能で、なりすましのリスクがあります。ユーザー ID は不変です。
Twitch ユーザー ID の確認: Twitch ユーザー名を ID に変換
トークンの更新 (オプション)
Twitch Token Generator で生成されたトークンは自動更新できません。期限が切れたら再生成してください。 自動更新が必要な場合は、Twitch Developer Console で自身の Twitch アプリケーションを作成し、以下を構成に追加してください:マルチアカウントのサポート
channels.twitch.accounts を使用して、アカウントごとにトークンを設定できます。共通のパターンについては gateway/configuration を参照してください。
構成例 (1 つのボットアカウントで 2 つのチャネルに参加する場合):
アクセス制御の詳細
ロールベースの制限
ユーザー ID による許可リスト (最も安全)
ロールベースのアクセス (代替)
allowFrom を設定すると、そのユーザー ID のみが許可される厳格なリストになります。
ロールベースのアクセスを行いたい場合は、allowFrom を未設定にし、allowedRoles を構成してください。
@メンション要件の無効化
デフォルトではrequireMention は true です。これを無効にしてすべてのメッセージに応答させるには以下のように設定します:
トラブルシューティング
まず、以下の診断コマンドを実行してください:ボットがメッセージに反応しない
アクセス制御を確認: 自身のユーザー ID がallowFrom に含まれているか確認してください。テストとして一時的に allowFrom を削除し、allowedRoles: ["all"] に設定してみてください。
ボットがチャネルに参加しているか確認: ボットは channel 設定で指定されたチャネルに参加している必要があります。
トークンの問題
「Failed to connect」や認証エラー:accessTokenが OAuth アクセストークンの値(通常oauth:プレフィックスで始まる)であることを確認してください。- トークンに
chat:readとchat:writeのスコープが付与されているか確認してください。 - 自動更新を使用している場合は、
clientSecretとrefreshTokenが設定されているか確認してください。
トークンの更新が動作しない
ログで更新イベントを確認:clientSecretが提供されているか確認してください。refreshTokenが提供されているか確認してください。
構成リファレンス
アカウント設定:username- ボットのユーザー名accessToken-chat:readとchat:writeを持つ OAuth アクセストークンclientId- Twitch Client ID (Token Generator または自身のアプリから)channel- 参加するチャネル(必須)enabled- このアカウントを有効化(デフォルト:true)clientSecret- オプション: トークン自動更新用refreshToken- オプション: トークン自動更新用expiresIn- トークンの有効期限(秒)obtainmentTimestamp- トークン取得時のタイムスタンプallowFrom- ユーザー ID の許可リストallowedRoles- ロールベースのアクセス制御 ("moderator" | "owner" | "vip" | "subscriber" | "all")requireMention- @メンションを必須にする(デフォルト:true)
channels.twitch.enabled- チャネルの起動を有効/無効にします。channels.twitch.username- ボットのユーザー名(単一アカウント用の簡略設定)channels.twitch.accessToken- OAuth アクセストークン(単一アカウント用の簡略設定)channels.twitch.clientId- Twitch Client ID(単一アカウント用の簡略設定)channels.twitch.channel- 参加するチャネル(単一アカウント用の簡略設定)channels.twitch.accounts.<accountName>- マルチアカウント設定(上記のアカウント設定項目すべて)
ツールアクション
エージェントはtwitch を呼び出して以下の操作が可能です:
send- チャネルにメッセージを送信します。
セキュリティと運用
- トークンはパスワードと同様に扱う - 決して Git 等にコミットしないでください。
- 長時間運用するボットには トークンの自動更新 を使用してください。
- アクセス制御にはユーザー名ではなく ユーザー ID の許可リスト を使用してください。
- トークンの更新イベントや接続ステータスをログで監視してください。
- トークンのスコープは最小限(
chat:readとchat:writeのみ)に留めてください。 - 動作が不安定な場合: 他のプロセスがセッションを所有していないことを確認し、ゲートウェイを再起動してください。
制限事項
- 1 メッセージあたり 500 文字(単語の境界で自動的に分割されます)。
- Markdown は分割前に除去されます。
- 独自のレート制限はありません(Twitch の組み込み制限に従います)。