Developer and self-hosted
Twitch
Twitch-Chat-Unterstützung über IRC-Verbindung. OpenClaw verbindet sich als Twitch-Benutzer (Bot-Konto), um Nachrichten in Kanälen zu empfangen und zu senden.
Gebündeltes Plugin
Wenn Sie einen älteren Build oder eine benutzerdefinierte Installation verwenden, die Twitch ausschließt, installieren Sie das npm-Paket direkt:
npm-Registry
openclaw plugins install @openclaw/twitchLokaler Checkout
openclaw plugins install ./path/to/local/twitch-pluginVerwenden Sie das reine Paket, um dem aktuellen offiziellen Release-Tag zu folgen. Pinnen Sie eine exakte Version nur, wenn Sie eine reproduzierbare Installation benötigen.
Details: Plugins
Schnelle Einrichtung (Einsteiger)
Sicherstellen, dass das Plugin verfügbar ist
Aktuelle paketierte OpenClaw-Releases bündeln es bereits. Ältere/benutzerdefinierte Installationen können es mit den obigen Befehlen manuell hinzufügen.
Twitch-Bot-Konto erstellen
Erstellen Sie ein dediziertes Twitch-Konto für den Bot (oder verwenden Sie ein vorhandenes Konto).
Zugangsdaten erzeugen
Verwenden Sie Twitch Token Generator:
- Wählen Sie Bot Token
- Prüfen Sie, dass die Scopes
chat:readundchat:writeausgewählt sind - Kopieren Sie die Client ID und das Access Token
Ihre Twitch-Benutzer-ID finden
Verwenden Sie https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/, um einen Benutzernamen in eine Twitch-Benutzer-ID umzuwandeln.
Token konfigurieren
- Env:
OPENCLAW_TWITCH_ACCESS_TOKEN=...(nur Standardkonto) - Oder Konfiguration:
channels.twitch.accessToken
Wenn beides gesetzt ist, hat die Konfiguration Vorrang (Env-Fallback gilt nur für das Standardkonto).
Gateway starten
Starten Sie das Gateway mit dem konfigurierten Kanal.
Minimale Konfiguration:
{ 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/ }, },}Was es ist
- Ein Twitch-Kanal, der dem Gateway gehört.
- Deterministisches Routing: Antworten gehen immer zurück an Twitch.
- Jedes Konto wird einem isolierten Sitzungsschlüssel
agent:<agentId>:twitch:<accountName>zugeordnet. usernameist das Konto des Bots (das authentifiziert wird),channelist der Chatraum, dem beigetreten wird.
Einrichtung (detailliert)
Zugangsdaten erzeugen
Verwenden Sie Twitch Token Generator:
- Wählen Sie Bot Token
- Prüfen Sie, dass die Scopes
chat:readundchat:writeausgewählt sind - Kopieren Sie die Client ID und das Access Token
Bot konfigurieren
Env-Variable (nur Standardkonto)
OPENCLAW_TWITCH_ACCESS_TOKEN=oauth:abc123...Konfiguration
{ channels: { twitch: { enabled: true, username: "openclaw", accessToken: "oauth:abc123...", clientId: "xyz789...", channel: "vevisk", }, },}Wenn Env und Konfiguration beide gesetzt sind, hat die Konfiguration Vorrang.
Zugriffskontrolle (empfohlen)
{ channels: { twitch: { allowFrom: ["123456789"], // (recommended) Your Twitch user ID only }, },}Bevorzugen Sie allowFrom für eine harte Positivliste. Verwenden Sie stattdessen allowedRoles, wenn Sie rollenbasierten Zugriff möchten.
Verfügbare Rollen: "moderator", "owner", "vip", "subscriber", "all".
Token-Aktualisierung (optional)
Tokens aus Twitch Token Generator können nicht automatisch aktualisiert werden - erzeugen Sie sie nach Ablauf neu.
Für automatische Token-Aktualisierung erstellen Sie Ihre eigene Twitch-Anwendung in der Twitch Developer Console und fügen Sie der Konfiguration Folgendes hinzu:
{ channels: { twitch: { clientSecret: "your_client_secret", refreshToken: "your_refresh_token", }, },}Der Bot aktualisiert Tokens automatisch vor dem Ablauf und protokolliert Aktualisierungsereignisse.
Unterstützung für mehrere Konten
Verwenden Sie channels.twitch.accounts mit kontoabhängigen Tokens. Siehe Konfiguration für das gemeinsame Muster.
Beispiel (ein Bot-Konto in zwei Kanälen):
{ channels: { twitch: { accounts: { channel1: { username: "openclaw", accessToken: "oauth:abc123...", clientId: "xyz789...", channel: "vevisk", }, channel2: { username: "openclaw", accessToken: "oauth:def456...", clientId: "uvw012...", channel: "secondchannel", }, }, }, },}Zugriffskontrolle
Benutzer-ID-Positivliste (am sichersten)
{ channels: { twitch: { accounts: { default: { allowFrom: ["123456789", "987654321"], }, }, }, },}Rollenbasiert
{ channels: { twitch: { accounts: { default: { allowedRoles: ["moderator", "vip"], }, }, }, },}allowFrom ist eine harte Positivliste. Wenn gesetzt, sind nur diese Benutzer-IDs erlaubt. Wenn Sie rollenbasierten Zugriff möchten, lassen Sie allowFrom ungesetzt und konfigurieren Sie stattdessen allowedRoles.
@mention-Anforderung deaktivieren
Standardmäßig ist requireMention true. So deaktivieren Sie dies und antworten auf alle Nachrichten:
{ channels: { twitch: { accounts: { default: { requireMention: false, }, }, }, },}Fehlerbehebung
Führen Sie zuerst Diagnosebefehle aus:
openclaw doctoropenclaw channels status --probeBot reagiert nicht auf Nachrichten
- Zugriffskontrolle prüfen: Stellen Sie sicher, dass Ihre Benutzer-ID in
allowFromenthalten ist, oder entfernen SieallowFromvorübergehend und setzen Sie zum TestenallowedRoles: ["all"]. - Prüfen, ob der Bot im Kanal ist: Der Bot muss dem in
channelangegebenen Kanal beitreten.
Token-Probleme
„Failed to connect“ oder Authentifizierungsfehler:
- Prüfen Sie, dass
accessTokender OAuth-Zugriffstokenwert ist (beginnt typischerweise mit dem Präfixoauth:) - Prüfen Sie, dass das Token die Scopes
chat:readundchat:writehat - Wenn Sie Token-Aktualisierung verwenden, prüfen Sie, dass
clientSecretundrefreshTokengesetzt sind
Token-Aktualisierung funktioniert nicht
Prüfen Sie die Logs auf Aktualisierungsereignisse:
Using env token source for mybotAccess token refreshed for user 123456 (expires in 14400s)Wenn Sie „token refresh disabled (no refresh token)“ sehen:
- Stellen Sie sicher, dass
clientSecretangegeben ist - Stellen Sie sicher, dass
refreshTokenangegeben ist
Konfiguration
Kontokonfiguration
usernamestringBot-Benutzername.
accessTokenstringOAuth-Zugriffstoken mit chat:read und chat:write.
clientIdstringTwitch Client ID (aus Token Generator oder Ihrer App).
channelstringrequiredKanal, dem beigetreten werden soll.
enabledbooleandefault: trueDieses Konto aktivieren.
clientSecretstringOptional: für automatische Token-Aktualisierung.
refreshTokenstringOptional: für automatische Token-Aktualisierung.
expiresInnumberToken-Ablauf in Sekunden.
obtainmentTimestampnumberZeitstempel, zu dem das Token erhalten wurde.
allowFromstring[]Benutzer-ID-Positivliste.
allowedRolesArray<"moderator" | "owner" | "vip" | "subscriber" | "all"-F�ezvڲrequireMentionbooleandefault: true@mention erforderlich.
Provider-Optionen
channels.twitch.enabled- Kanalstart aktivieren/deaktivierenchannels.twitch.username- Bot-Benutzername (vereinfachte Einzelkonto-Konfiguration)channels.twitch.accessToken- OAuth-Zugriffstoken (vereinfachte Einzelkonto-Konfiguration)channels.twitch.clientId- Twitch Client ID (vereinfachte Einzelkonto-Konfiguration)channels.twitch.channel- Kanal, dem beigetreten werden soll (vereinfachte Einzelkonto-Konfiguration)channels.twitch.accounts.<accountName>- Mehrkonten-Konfiguration (alle Kontofelder oben)
Vollständiges Beispiel:
{ 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"], }, }, }, },}Tool-Aktionen
Der Agent kann twitch mit folgender Aktion aufrufen:
send- Eine Nachricht an einen Kanal senden
Beispiel:
{ action: "twitch", params: { message: "Hello Twitch!", to: "#mychannel", },}Sicherheit und Betrieb
- Behandeln Sie Tokens wie Passwörter — Committen Sie Tokens niemals in Git.
- Verwenden Sie automatische Token-Aktualisierung für langlebige Bots.
- Verwenden Sie Benutzer-ID-Positivlisten statt Benutzernamen für die Zugriffskontrolle.
- Überwachen Sie Logs auf Token-Aktualisierungsereignisse und Verbindungsstatus.
- Beschränken Sie Tokens minimal — Fordern Sie nur
chat:readundchat:writean. - Wenn Sie feststecken: Starten Sie das Gateway neu, nachdem Sie bestätigt haben, dass kein anderer Prozess die Sitzung besitzt.
Grenzen
- 500 Zeichen pro Nachricht (automatisch an Wortgrenzen aufgeteilt).
- Markdown wird vor dem Aufteilen entfernt.
- Keine Ratenbegrenzung (verwendet die integrierten Ratenbegrenzungen von Twitch).
Verwandt
- Kanal-Routing — Sitzungs-Routing für Nachrichten
- Kanalübersicht — alle unterstützten Kanäle
- Gruppen — Gruppenchat-Verhalten und Mention-Gating
- Pairing — DM-Authentifizierung und Pairing-Ablauf
- Sicherheit — Zugriffsmodell und Härtung