Naar hoofdinhoud gaan

Documentation Index

Fetch the complete documentation index at: https://docs2.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.

Gebundelde Plugin

Twitch wordt meegeleverd als gebundelde Plugin in huidige OpenClaw-releases, dus normale verpakte builds hebben geen aparte installatie nodig.
Als je een oudere build gebruikt of een aangepaste installatie waarin Twitch is uitgesloten, installeer dan het npm-pakket rechtstreeks:
openclaw plugins install @openclaw/twitch
Gebruik het kale pakket om de huidige officiële release-tag te volgen. Pin alleen een exacte versie wanneer je een reproduceerbare installatie nodig hebt. Details: Plugins

Snelle installatie (beginner)

1

Zorg dat de Plugin beschikbaar is

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

Maak een Twitch-botaccount aan

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

Genereer inloggegevens

Gebruik Twitch Token Generator:
  • Selecteer Bot Token
  • Controleer of 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 naar een Twitch-gebruikers-ID om te zetten.
5

Configureer het token

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

Start de Gateway

Start de Gateway met het geconfigureerde kanaal.
Voeg toegangscontrole (allowFrom of allowedRoles) toe om te voorkomen dat onbevoegde gebruikers de bot activeren. requireMention staat standaard op 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 (wie zich authenticeert), channel is de chatruimte waaraan wordt deelgenomen.

Installatie (gedetailleerd)

Inloggegevens genereren

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

De bot configureren

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

Toegangscontrole (aanbevolen)

{
  channels: {
    twitch: {
      allowFrom: ["123456789"], // (recommended) Your Twitch user ID only
    },
  },
}
Geef de voorkeur aan allowFrom voor een harde toelatingslijst. Gebruik in plaats daarvan allowedRoles als je rolgebaseerde toegang wilt. Beschikbare rollen: "moderator", "owner", "vip", "subscriber", "all".
Waarom gebruikers-ID’s? Gebruikersnamen kunnen veranderen, wat impersonatie mogelijk maakt. 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)

Token vernieuwen (optioneel)

Tokens van Twitch Token Generator kunnen niet automatisch worden vernieuwd - genereer ze opnieuw wanneer ze zijn verlopen. Voor automatische tokenvernieuwing maak je je eigen Twitch-applicatie aan op Twitch Developer Console en voeg je dit toe aan de configuratie:
{
  channels: {
    twitch: {
      clientSecret: "your_client_secret",
      refreshToken: "your_refresh_token",
    },
  },
}
De bot vernieuwt tokens automatisch vóór de vervaldatum 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).

Toegangscontrole

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

Probleemoplossing

Voer eerst diagnostische opdrachten uit:
openclaw doctor
openclaw channels status --probe
  • Controleer toegangscontrole: 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.
“Kan geen verbinding maken” of authenticatiefouten:
  • Controleer of accessToken de OAuth-toegangstokenwaarde is (begint meestal met het voorvoegsel oauth:)
  • Controleer of het token 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
Tokenverval in seconden.
obtainmentTimestamp
number
Tijdstempel waarop token is verkregen.
allowFrom
string[]
Gebruikers-ID-toelatingslijst.
allowedRoles
Array<"moderator" | "owner" | "vip" | "subscriber" | "all">
Rolgebaseerde toegangscontrole.
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 bovenstaande accountvelden)
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 gebruikers-ID-toelatingslijsten in plaats van gebruikersnamen voor toegangscontrole.
  • Monitor logs voor tokenvernieuwingsgebeurtenissen en verbindingsstatus.
  • Beperk tokens minimaal — Vraag alleen chat:read en chat:write aan.
  • Als je vastloopt: Herstart de Gateway nadat je hebt bevestigd dat geen ander proces eigenaar is van de sessie.

Limieten

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

Gerelateerd