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/twitch
Lokaler Checkout
openclaw plugins install ./path/to/local/twitch-plugin
Verwenden 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 doctor
openclaw channels status --probe
Bot 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 mybot
Access 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.
enabledbooleanDieses 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ڲrequireMentionboolean@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