Zum Hauptinhalt springen

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

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

Twitch wird in aktuellen OpenClaw-Releases als gebündeltes Plugin ausgeliefert, daher benötigen normale paketierte Builds keine separate Installation.
Wenn Sie einen älteren Build oder eine benutzerdefinierte Installation verwenden, die Twitch ausschließt, installieren Sie das npm-Paket direkt:
openclaw plugins install @openclaw/twitch
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)

1

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.
2

Twitch-Bot-Konto erstellen

Erstellen Sie ein dediziertes Twitch-Konto für den Bot (oder verwenden Sie ein vorhandenes Konto).
3

Zugangsdaten erzeugen

Verwenden Sie Twitch Token Generator:
  • Wählen Sie Bot Token
  • Prüfen Sie, dass die Scopes chat:read und chat:write ausgewählt sind
  • Kopieren Sie die Client ID und das Access Token
4

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.
5

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).
6

Gateway starten

Starten Sie das Gateway mit dem konfigurierten Kanal.
Fügen Sie Zugriffskontrolle (allowFrom oder allowedRoles) hinzu, um zu verhindern, dass unbefugte Benutzer den Bot auslösen. requireMention ist standardmäßig true.
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.
  • username ist das Konto des Bots (das authentifiziert wird), channel ist 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:read und chat:write ausgewählt sind
  • Kopieren Sie die Client ID und das Access Token
Keine manuelle App-Registrierung erforderlich. Tokens laufen nach mehreren Stunden ab.

Bot konfigurieren

OPENCLAW_TWITCH_ACCESS_TOKEN=oauth:abc123...
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".
Warum Benutzer-IDs? Benutzernamen können sich ändern, was Identitätsübernahme ermöglicht. Benutzer-IDs sind dauerhaft.Ihre Twitch-Benutzer-ID finden: https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ (Konvertieren Sie Ihren Twitch-Benutzernamen in eine ID)

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",
        },
      },
    },
  },
}
Jedes Konto benötigt sein eigenes Token (ein Token pro Kanal).

Zugriffskontrolle

{
  channels: {
    twitch: {
      accounts: {
        default: {
          allowFrom: ["123456789", "987654321"],
        },
      },
    },
  },
}

Fehlerbehebung

Führen Sie zuerst Diagnosebefehle aus:
openclaw doctor
openclaw channels status --probe
  • Zugriffskontrolle prüfen: Stellen Sie sicher, dass Ihre Benutzer-ID in allowFrom enthalten ist, oder entfernen Sie allowFrom vorübergehend und setzen Sie zum Testen allowedRoles: ["all"].
  • Prüfen, ob der Bot im Kanal ist: Der Bot muss dem in channel angegebenen Kanal beitreten.
„Failed to connect“ oder Authentifizierungsfehler:
  • Prüfen Sie, dass accessToken der OAuth-Zugriffstokenwert ist (beginnt typischerweise mit dem Präfix oauth:)
  • Prüfen Sie, dass das Token die Scopes chat:read und chat:write hat
  • Wenn Sie Token-Aktualisierung verwenden, prüfen Sie, dass clientSecret und refreshToken gesetzt sind
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 clientSecret angegeben ist
  • Stellen Sie sicher, dass refreshToken angegeben ist

Konfiguration

Kontokonfiguration

username
string
Bot-Benutzername.
accessToken
string
OAuth-Zugriffstoken mit chat:read und chat:write.
clientId
string
Twitch Client ID (aus Token Generator oder Ihrer App).
channel
string
erforderlich
Kanal, dem beigetreten werden soll.
enabled
boolean
Standard:"true"
Dieses Konto aktivieren.
clientSecret
string
Optional: für automatische Token-Aktualisierung.
refreshToken
string
Optional: für automatische Token-Aktualisierung.
expiresIn
number
Token-Ablauf in Sekunden.
obtainmentTimestamp
number
Zeitstempel, zu dem das Token erhalten wurde.
allowFrom
string[]
Benutzer-ID-Positivliste.
allowedRoles
Array<"moderator" | "owner" | "vip" | "subscriber" | "all">
Rollenbasierte Zugriffskontrolle.
requireMention
boolean
Standard:"true"
@mention erforderlich.

Provider-Optionen

  • channels.twitch.enabled - Kanalstart aktivieren/deaktivieren
  • channels.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:read und chat:write an.
  • 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