Naar hoofdinhoud gaan

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-chatondersteuning via IRC-verbinding. OpenClaw maakt verbinding als Twitch-gebruiker (botaccount) om berichten in kanalen te ontvangen en te verzenden.

Meegeleverde Plugin

Twitch wordt in huidige OpenClaw-releases meegeleverd als gebundelde Plugin, dus normale verpakte builds hebben geen aparte installatie nodig.
Als je een oudere build gebruikt of een aangepaste installatie die Twitch uitsluit, installeer dan een huidig npm-pakket zodra er een is gepubliceerd:
openclaw plugins install @openclaw/twitch
Als npm meldt dat het OpenClaw-pakket als verouderd is gemarkeerd, gebruik dan een huidige verpakte OpenClaw-build of het lokale checkout-pad totdat er een nieuwer npm-pakket is gepubliceerd. Details: Plugins

Snelle configuratie (beginner)

1

Zorg dat de Plugin beschikbaar is

Huidige verpakte OpenClaw-releases leveren deze al mee. Oudere/aangepaste installaties kunnen deze handmatig toevoegen met de bovenstaande opdrachten.
2

Maak een Twitch-botaccount aan

Maak een speciaal Twitch-account aan voor de bot (of gebruik een bestaand account).
3

Genereer inloggegevens

Gebruik Twitch Token Generator:
  • Selecteer Bot Token
  • Controleer of de scopes chat:read en chat:write zijn geselecteerd
  • Kopieer de Client ID en Access Token
4

Vind je Twitch-gebruikers-ID

Gebruik https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ om een gebruikersnaam om te zetten naar een Twitch-gebruikers-ID.
5

Configureer het token

  • Omgeving: OPENCLAW_TWITCH_ACCESS_TOKEN=... (alleen standaardaccount)
  • Of configuratie: channels.twitch.accessToken
Als beide zijn ingesteld, heeft configuratie voorrang (omgevingsfallback is alleen voor het standaardaccount).
6

Start de gateway

Start de gateway met het geconfigureerde kanaal.
Voeg toegangsbeheer (allowFrom of allowedRoles) toe om te voorkomen dat onbevoegde gebruikers de bot activeren. requireMention is standaard true.
Minimale configuratie:
{
  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/
    },
  },
}

Wat het is

  • Een Twitch-kanaal dat eigendom is van de Gateway.
  • Deterministische routering: antwoorden gaan altijd terug naar Twitch.
  • Elk account wordt gekoppeld aan een geïsoleerde sessiesleutel agent:<agentId>:twitch:<accountName>.
  • username is het account van de bot (dat zich authenticeert), channel is de chatruimte waaraan wordt deelgenomen.

Configuratie (gedetailleerd)

Genereer inloggegevens

Gebruik Twitch Token Generator:
  • Selecteer Bot Token
  • Controleer of de scopes chat:read en chat:write zijn geselecteerd
  • Kopieer de Client ID en Access Token
Geen handmatige appregistratie nodig. Tokens verlopen na enkele uren.

Configureer de bot

OPENCLAW_TWITCH_ACCESS_TOKEN=oauth:abc123...
Als zowel omgeving als configuratie zijn ingesteld, heeft configuratie voorrang.

Toegangsbeheer (aanbevolen)

{
  channels: {
    twitch: {
      allowFrom: ["123456789"], // (recommended) Your Twitch user ID only
    },
  },
}
Geef de voorkeur aan allowFrom voor een strikte allowlist. Gebruik in plaats daarvan allowedRoles als je rolgebaseerde toegang wilt. Beschikbare rollen: "moderator", "owner", "vip", "subscriber", "all".
Waarom gebruikers-ID’s? Gebruikersnamen kunnen wijzigen, waardoor impersonatie mogelijk is. Gebruikers-ID’s zijn permanent.Vind je Twitch-gebruikers-ID: https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ (Zet je Twitch-gebruikersnaam om naar ID)

Tokenvernieuwing (optioneel)

Tokens van Twitch Token Generator kunnen niet automatisch worden vernieuwd - genereer opnieuw wanneer ze zijn verlopen. Maak voor automatische tokenvernieuwing je eigen Twitch-applicatie aan op Twitch Developer Console en voeg dit toe aan de configuratie:
{
  channels: {
    twitch: {
      clientSecret: "your_client_secret",
      refreshToken: "your_refresh_token",
    },
  },
}
De bot vernieuwt tokens automatisch vóór verlopen en logt vernieuwingsgebeurtenissen.

Ondersteuning voor meerdere accounts

Gebruik channels.twitch.accounts met tokens per account. Zie Configuratie voor het gedeelde patroon. Voorbeeld (één botaccount in twee kanalen):
{
  channels: {
    twitch: {
      accounts: {
        channel1: {
          username: "openclaw",
          accessToken: "oauth:abc123...",
          clientId: "xyz789...",
          channel: "vevisk",
        },
        channel2: {
          username: "openclaw",
          accessToken: "oauth:def456...",
          clientId: "uvw012...",
          channel: "secondchannel",
        },
      },
    },
  },
}
Elk account heeft een eigen token nodig (één token per kanaal).

Toegangsbeheer

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

Probleemoplossing

Voer eerst diagnostische opdrachten uit:
openclaw doctor
openclaw channels status --probe
  • Controleer toegangsbeheer: Zorg dat je gebruikers-ID in allowFrom staat, of verwijder allowFrom tijdelijk en stel allowedRoles: ["all"] in om te testen.
  • Controleer of de bot in het kanaal zit: De bot moet deelnemen aan het kanaal dat is opgegeven in channel.
“Failed to connect” of authenticatiefouten:
  • Controleer of accessToken de OAuth-toegangstokenwaarde is (begint meestal met het voorvoegsel oauth:)
  • Controleer of het token de scopes chat:read en chat:write heeft
  • Als je tokenvernieuwing gebruikt, controleer dan of clientSecret en refreshToken zijn ingesteld
Controleer logs op vernieuwingsgebeurtenissen:
Using env token source for mybot
Access token refreshed for user 123456 (expires in 14400s)
Als je “token refresh disabled (no refresh token)” ziet:
  • Zorg dat clientSecret is opgegeven
  • Zorg dat refreshToken is opgegeven

Configuratie

Accountconfiguratie

username
string
Botgebruikersnaam.
accessToken
string
OAuth-toegangstoken met chat:read en chat:write.
clientId
string
Twitch Client ID (van Token Generator of je app).
channel
string
vereist
Kanaal om aan deel te nemen.
enabled
boolean
standaard:"true"
Schakel dit account in.
clientSecret
string
Optioneel: voor automatische tokenvernieuwing.
refreshToken
string
Optioneel: voor automatische tokenvernieuwing.
expiresIn
number
Tokenverlooptijd in seconden.
obtainmentTimestamp
number
Tijdstempel waarop het token is verkregen.
allowFrom
string[]
Allowlist met gebruikers-ID’s.
allowedRoles
Array<"moderator" | "owner" | "vip" | "subscriber" | "all">
Rolgebaseerd toegangsbeheer.
requireMention
boolean
standaard:"true"
Vereis @mention.

Provideropties

  • channels.twitch.enabled - Schakel kanaalstart in/uit
  • channels.twitch.username - Botgebruikersnaam (vereenvoudigde configuratie voor één account)
  • channels.twitch.accessToken - OAuth-toegangstoken (vereenvoudigde configuratie voor één account)
  • channels.twitch.clientId - Twitch Client ID (vereenvoudigde configuratie voor één account)
  • channels.twitch.channel - Kanaal om aan deel te nemen (vereenvoudigde configuratie voor één account)
  • channels.twitch.accounts.<accountName> - Configuratie voor meerdere accounts (alle accountvelden hierboven)
Volledig voorbeeld:
{
  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"],
        },
      },
    },
  },
}

Toolacties

De agent kan twitch aanroepen met actie:
  • send - Stuur een bericht naar een kanaal
Voorbeeld:
{
  action: "twitch",
  params: {
    message: "Hello Twitch!",
    to: "#mychannel",
  },
}

Veiligheid en beheer

  • Behandel tokens als wachtwoorden — Commit tokens nooit naar git.
  • Gebruik automatische tokenvernieuwing voor langlopende bots.
  • Gebruik allowlists met gebruikers-ID’s in plaats van gebruikersnamen voor toegangsbeheer.
  • Monitor logs op tokenvernieuwingsgebeurtenissen en verbindingsstatus.
  • Beperk tokens minimaal — Vraag alleen chat:read en chat:write aan.
  • Als je vastloopt: Start de gateway opnieuw nadat je hebt bevestigd dat geen ander proces eigenaar is van de sessie.

Limieten

  • 500 tekens per bericht (automatisch opgesplitst op woordgrenzen).
  • Markdown wordt verwijderd vóór het opsplitsen.
  • Geen rate limiting (gebruikt de ingebouwde rate limits van Twitch).

Gerelateerd